本文共 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 (;ithis.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/