博客
关于我
顺序表各种功能的实现
阅读量: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/

你可能感兴趣的文章
mutiplemap 总结
查看>>
MySQL DELETE 表别名问题
查看>>
MySQL Error Handling in Stored Procedures---转载
查看>>
MVC 区域功能
查看>>
MySQL FEDERATED 提示
查看>>
mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
查看>>
Mysql group by
查看>>
MySQL I 有福啦,窗口函数大大提高了取数的效率!
查看>>
mysql id自动增长 初始值 Mysql重置auto_increment初始值
查看>>
MySQL in 太多过慢的 3 种解决方案
查看>>
MySQL InnoDB 三大文件日志,看完秒懂
查看>>
Mysql InnoDB 数据更新导致锁表
查看>>
Mysql Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>
MySQL InnoDB引擎的锁机制详解
查看>>
Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
查看>>