实现顺序表代码

mac2026-06-10  12

public class SeqList { private int[] data = new int[10]; private int size = 0; //打印顺序表 public void display(){ System.out.print("["); for (int i = 0; i < size; i++){ System.out.print(data[i]); if(i != size - 1){ System.out.print(","); } } System.out.print("]"); } //在指定位置插入元素 public void add(int pos, int elem){ if(pos < 0 || pos > size){ return; } if(this.size >= this.data.length){ realloc(); } if(pos == size){ this.data[pos] = elem; this.size ++; return; } for(int i = this.size;i>pos;i--){ this.data[i] = this.data[i-1]; } this.data[pos] = elem; this.size++; } private void realloc(){ int[] newData = new int[this.data.length * 2]; for (int i = 0; i < this.data.length; i++){ newData[i] = this.data[i]; } this.data = newData; } //判定是否包含某个元素 public boolean contains(int toFind){ for(int i = 0; i < this.size; i++){ if(this.data[i] == toFind){ return true; } } return false; } //查找某个元素对应的位置 public int search(int toFind){ for(int i = 0; i < this.size; i++){ if(this.data[i] == toFind){ return i; } } return -1; } //获取pos位置的元素 public int getpos(int pos){ return this.data[pos]; } //给pos位置的元素设为elem public void setPos(int pos,int elem){ this.data[pos] = elem; } //删除指定下标元素 public void remove(int toRemove){ int pos = search(toRemove); if(pos == -1){ return; } if(pos == this.size - 1){ this.size --; return; } for(int i = pos; i < size; i++){ this.data[i] = this.data[i + 1]; } this.size--; } //获取顺序表长度 public int size(){ return this.size; } //清空顺序表 public void clear(){ this.size = 0; this.data = new int[10]; } }

单元测试

public class Test { public static void main(String[] args) { TestAdd(); TestContains(); TestSearch(); TestRemove(); } public static void TestAdd() { SeqList seqlist = new SeqList(); seqlist.add(0, 1); seqlist.add(1, 2); seqlist.add(2, 3); seqlist.add(3, 4); seqlist.add(2, 2); seqlist.display(); } public static void TestContains() { SeqList seqlist = new SeqList(); seqlist.add(0, 1); seqlist.add(1, 2); seqlist.add(2, 3); seqlist.add(3, 4); boolean result = seqlist.contains(4); System.out.println(result); } public static void TestSearch(){ SeqList seqlist = new SeqList(); seqlist.add(0, 1); seqlist.add(1, 2); seqlist.add(2, 3); seqlist.add(3, 4); int result = seqlist.search(3); System.out.println(result); } public static void TestRemove(){ SeqList seqlist = new SeqList(); seqlist.add(0, 1); seqlist.add(1, 2); seqlist.add(2, 3); seqlist.add(3, 4); seqlist.remove(3); System.out.println(); seqlist.display(); } }
最新回复(0)