1、這里實現了簡單的順序表的,為空判斷、是否已滿判斷,插入、刪除,查詢元素下標等功能
public class Linear_List { private int[] arr; //用來保存數據 private int size; //實際存入數據占用空間大小 /** * 初始化線性表,聲明數組大小 * * @param initial_size:數組大小 */ public Linear_List(int initial_size) { if (initial_size >= 0) { this.arr = new int[initial_size]; //初始化數組 this.size = 0; //初始下標為0 } else { System.out.println("你給的初始值: " + initial_size + "不能小於0"); } } /** * 判斷線性表滿沒有 * * @return :真則滿,假未滿 */ public boolean isFull() { if (this.size == arr.length) { return true; } else { return false; } } /** * 判斷線性表是否為空 * * @return :真則空,假未空 */ public boolean isEmpty() { if (this.size == 0) { return true; } else { return false; } } /** * 1、增加元素 * * @param value :要插入的數據 * @param index :插入的位置 */ public void addData(int value, int index) { if (isFull()) { System.out.println("線性表已滿"); } else if (index < 0 || index > arr.length) { System.out.println("插入的下標越界,您要插入的下標為:" + index); } else { for (int i = this.size - 1; i >= index; i--) { arr[i + 1] = arr[i]; //依次后移 } arr[index] = value; this.size++; //數組元素下標增加 } } /** * 2、刪除元素 * * @param value :要刪除的數 */ public void deleteData(int value) { int pos = find(value); if (pos == -1) { System.out.println("您要找的 " + value + " 元素不在該線性表中"); } else { System.out.println("您要刪除的 " + value + " 元素下標為:" + pos); } for (int j = pos; j <= this.size - 2; j++) { //這里-2,是因為找到的元素下標,要將后一個的沖掉前一個,會增加一個 arr[j] = arr[j + 1]; } this.size--; } /** * 3、查找元素下標 * @param value :所要查找的元素 * @return :返回下標 */ public int find(int value) { int pos = -1; if (isEmpty()) { System.out.println("線性表已空,沒有可刪除元素"); } else { for (int i = 0; i <= this.size - 1; i++) { if (arr[i] == value) { pos = i; } } } return pos; } /** * 打印線性表元素 */ public void print() { for (int i = 0; i <= this.size - 1; i++) { System.out.print(arr[i] + " "); } System.out.println(); } public static void main(String[] args) { //初始化順序表 Linear_List linear_list = new Linear_List(10); for (int i = 0; i < 10; i++) { linear_list.addData(i + 1, i); } linear_list.print(); //刪除 linear_list.deleteData(5); linear_list.print(); //增加測試 linear_list.addData(5, 1); linear_list.print(); //查找元素下標 int find_value = 15; int pos =linear_list.find(find_value); if (pos == -1) { System.out.println("您要找的 " + find_value + " 元素不在該線性表中"); } else { System.out.println("您要找的 " + find_value + " 元素下標為:" + pos); } } }
2、簡單測試結果
1 2 3 4 5 6 7 8 9 10
您要刪除的 5 元素下標為:4
1 2 3 4 6 7 8 9 10
1 5 2 3 4 6 7 8 9 10
您要找的 15 元素不在該線性表中