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 元素不在该线性表中