变强日记第八篇 顺序表

it2023-09-16  71

// 顺序表

public class TestDemo { private int[] array;//数组 private int useSize;//有效值 public int getUseSize() { return useSize; } public void setUseSize(int useSize) { this.useSize = useSize; } public int[] getArray() { return array; } public void setArray(int[] array) { this.array = array; } public TestDemo() { this.array = new int[10]; this.useSize = 0; } public TestDemo(int capacity) { this.array = new int[capacity]; this.useSize = 0; } // 输出顺序表 public void display() { for (int i = 0; i < useSize; i++) { System.out.print(array[i] + " "); } System.out.println(); } // 判断顺序表中是否有某个元素 public boolean contains (int key) { for (int i = 0; i < useSize; i++) { if (this.array[i] == key) { return true; } } return false; } // 查找某元素对应位置 public int serach(int key) { for (int i = 0; i < useSize; i++) { if (this.array[i] == key) { return i; } } return -1; } // 获取pos所在位置元素 public int getPos(int pos) { if (pos >= 0 && pos < useSize) { return array[pos]; } System.out.println("pos不合法"); return -1; } // 给pos位置设置值为value public void setPos(int pos,int value) { if (pos >= 0 && pos < useSize) { this.array[pos] = value; }else { System.out.println("pos不合法,无法赋值"); } } // 获取顺序表长度 public int size() { return this.useSize; } // 清空顺序表 public void clear() { this.useSize = 0; } // 添加元素 public void add (int pos, int data) { if (pos < 0 || pos > useSize) { return; } if (useSize == array.length) { return; } for (int i = useSize - 1; i >= pos; i--) { array[i + 1] = array[i]; } array[pos] = data; useSize++; } // 删除第一次出现的key值 public void remove(int key) { int temp= serach(key); if (temp >= 0 && temp <= useSize - 1) { for (int i = temp; i <= useSize - 1 ; i++) { this.array[i] = this.array[i + 1]; } this.useSize--; } else{ return; } } // 删除所有与参数相同的值 public void removeAll(int data) { /* for (int i = useSize - 1; i >= 0; i--) { remove(data); }*/ int temp = this.useSize; for (int i = 0; i < temp; i++) { remove(data); } } }

顺序表 主要需要考虑 有效长度 索引 数组长度之间的关系

最新回复(0)