博客
关于我
顺序表各种功能的实现
阅读量:336 次
发布时间:2019-03-04

本文共 2548 字,大约阅读时间需要 8 分钟。

顺序表各种功能的实现

public class Demo09 {       public static void main(String[] args) {           MyArrayList myArrayList = new MyArrayList();        myArrayList.add(0,1);        myArrayList.add(1,2);        myArrayList.add(1,3);        myArrayList.add(2,4);        myArrayList.show();//打印顺序表        myArrayList.add(3,99);        myArrayList.show();        System.out.println(myArrayList.key(99));//判断是否有key元素,true为有        System.out.println(myArrayList.keyNum(99));//输出key元素的位置        System.out.println(myArrayList.getPos(3));//输出pos下标的元素        myArrayList.replace(3,88);//替换pos位置的元素为val        myArrayList.show();        myArrayList.del(88);//删除第一次出现的关键字key        myArrayList.show();        System.out.println(myArrayList.getLegth());//获取长度        myArrayList.clear();//清空顺序表        myArrayList.show();    }}class MyArrayList{       //普通成员变量    public int[] elem;    public int usedSize;    //构造方法    public MyArrayList(){           this.elem = new int[1];    }    //判断是否有key元素    public boolean key (int key){           for (int i = 0 ; i < this.usedSize; i++ ){               if(elem[i] == key){                   return true;            }        }        return false;    }    //输出key元素的下标    public int keyNum (int key){           for (int i = 0 ; i < this.usedSize; i++ ){               if(elem[i] == key){                   return i;            }        }        return -1;    }    //获取pos下标位置的元素    public int getPos(int pos){           if (pos<0||pos>=this.usedSize) {               return -1;        }        return this.elem[pos];    }    //替换pos位置的元素为val    public void replace(int pos,int val){           if (pos<0||pos>=this.usedSize) {               System.out.printf("pos不在范围内");        }else {               this.elem[pos] = val;        }    }    //删除第一次出现的关键字key    public void del (int key){           for (int i = 0; i < this.usedSize; i++) {               if(elem[i] == key){                   for (;i
this.usedSize || pos<0){ return; } for (int i = this.usedSize-1;i >= pos ;i--){ elem[i+1] = elem[i]; } this.elem[pos] = data; this.usedSize++; } //扩容 public void expand(){ int[] tmp = new int[this.elem.length*2]; for (int i = 0 ;i < this.elem.length ; i++ ){ tmp[i] = this.elem[i]; } this.elem = tmp ; return ; } //打印顺序表 public void show(){ for (int i = 0; i < this.usedSize; i++) { System.out.print(this.elem[i] + " "); } System.out.println(); }}

转载地址:http://yzbe.baihongyu.com/

你可能感兴趣的文章
MySQL 快速创建千万级测试数据
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>
MySql 手动执行主从备份
查看>>
Mysql 批量修改四种方式效率对比(一)
查看>>
mysql 批量插入
查看>>
Mysql 报错 Field 'id' doesn't have a default value
查看>>
MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
查看>>
Mysql 拼接多个字段作为查询条件查询方法
查看>>
mysql 排序id_mysql如何按特定id排序
查看>>
Mysql 提示:Communication link failure
查看>>
mysql 插入是否成功_PDO mysql:如何知道插入是否成功
查看>>
Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
查看>>
mysql 数据库中 count(*),count(1),count(列名)区别和效率问题
查看>>
mysql 数据库备份及ibdata1的瘦身
查看>>
MySQL 数据库备份种类以及常用备份工具汇总
查看>>
mysql 数据库存储引擎怎么选择?快来看看性能测试吧
查看>>
MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
查看>>
MySQL 数据库的高可用性分析
查看>>
MySQL 数据库设计总结
查看>>
Mysql 数据库重置ID排序
查看>>