线性表(存储结构数组)--Java 实现
1 /*线性表的数组实现 2 *特点:插入删除慢需要平均移动一半的数据,查找较快 3 *注意:有重复和无重复的数据对应的操作会有些不同 4 *注意数组一旦创建其大小就固定了 5 *Java集合长度可变是由于创建新的数组将原来旧的数据复制过去--这些附加功能牺牲了效率 6 *主要实现以下几个功能 7 *1.线性表查找 8 *2.线性表删除 9 *3.线性表的插入存储一个元素(无序数组插入) 10 * */ 11 public class MyArray { 12 13 private long[] arr; 14 private int items;//记录数组元素个数--关键 15 16 public MyArray(int max) {//max记录数组长度 17 this.arr = new long[max]; 18 items = 0; 19 } 20 21 public int size(){ 22 return items; 23 } 24 //按照值查找 25 public boolean find(long searchKey){ 26 int index = 0; 27 for(int i = 0; i < items; i++){ 28 if(searchKey == arr[i]){ 29 index = i; 30 break; 31 } 32 } 33 if(index == items){ 34 return false; 35 } 36 else{ 37 return true; 38 } 39 } 40 41 //存储元素 42 public void insert(long key){ 43 arr[items] = key; 44 items++; 45 } 46 47 //删除一个元素--按照值 48 public boolean delete(long key){ 49 //遍历数组--先找到元素 50 int i; 51 for(i = 0; i < items; i++){ 52 if(key == arr[i]){ 53 break; 54 } 55 } 56 if(i== items){ 57 return false; 58 } 59 else{ 60 //向左边移动操作 61 for(int k = i;k < items; k++){ 62 arr[k] = arr[k+1]; 63 } 64 items--; 65 return true; 66 } 67 } 68 69 public void displayArray(){ 70 for(int i = 0;i < items;i++){ 71 System.out.print(arr[i] + " "); 72 } 73 System.out.println(); 74 } 75 }