1、順序表
阿新 • • 發佈:2018-12-01
順序表: 順序表比較簡單,就是建立一個數組,順序儲存某一型別的資料,
* @Author : WHVO * * @Description: * * @Date: Created in 19:05 2018/11/21/021 * * @Modified By: 順序表 * */ import java.util.Arrays; public class testSqlist { private int[] elem; private int size; public testSqlist() { this(10); } public testSqlist(int size) { elem = new int[size]; } // 檢查是否滿了 public boolean isFill() { return size == elem.length; } //根據索引插入資料 public boolean insert(int index, int val) { //擴容 if (isFill()) { Arrays.copyOf(elem, 2 * elem.length); } // 檢查索引 if (index < 0 || index > size) { return false; } else { for (int i = size - 1; i >= index; i--) { //數字後移 elem[i + 1] = elem[i]; } elem[index] = val; size++; return true; } } //是否為空 public boolean isEmpty() { return size == 0; } //查詢關鍵字下標 public int serach(int key) { if (isEmpty()) { return -1; } else { for (int i = 0; i < size; i++) { if (this.elem[i] == key) { return i; } } } return -1; } //刪除關鍵字key的值; public boolean remove(int key) { int index = serach(key); if (index == -1) { return false; } else { for (int j = index; j < this.size - 1; j++) { elem[j] = elem[j + 1]; } this.size--; return true; } } // 得到索引位置的值 public Object getVal(int pos) { if (pos < 0 || pos > size || isEmpty()) { throw new UnsupportedOperationException(); } else { return elem[pos]; } } public String toString() { return Arrays.toString(elem); } }