java的线性表实现
刚开始学习数据结构实现,自己做了一个简单的线性表实现,还有很多不足,希望多多指教
1 /** 2 * 线性表的基本操作: 3 * 1.void add(int data) 在末尾增添一个数 4 * 2.void add(int index,int data) 在指定位置增添一个数 5 * 3.void delete(int index) 删除指定位置的元素 6 * 4.void deleteAll() 清空线性表元素 7 * 5.int find(int data) 找到某个数据 8 * 6.void update(int index,int data) 在指定位置修改元素值 9 */ 10 public class Node { 11 int maxsize; //数组的最大长度 12 int a[]; 13 int length; //数组的当前长度 14 public Node(int b) { //构造函数,用于对数组的初始化和给出数组的最大长度 15 this.length=0; 16 this.a=new int[b]; 17 this.maxsize=a.length; 18 } 19 20 public void add(int data) { 21 if(length<maxsize) { 22 a[length]=data; 23 length++; 24 } 25 else { 26 System.out.println("数组空间已满,无法添加元素。"); 27 } 28 } 29 30 public void add(int index,int data) { 31 if(length<maxsize) { 32 int i=length; 33 while(i!=index) { 34 a[i]=a[i-1]; 35 i--; 36 } 37 a[index]=data; 38 length++; 39 } 40 else { 41 System.out.println("数组空间已满,无法添加元素。"); 42 } 43 } 44 45 public void delete(int index) { //java中数组未初始化时有默认值0 46 if(length!=0) { 47 int i=index; 48 while(i<length) { 49 a[i]=a[i+1]; 50 } 51 length--; 52 } 53 else { 54 System.out.println("没有元素可以供删除"); 55 } 56 } 57 58 59 public void deleteAll() { 60 for(int j=length-1;j>=0;--j) { 61 a[j]=0; 62 } 63 length=0; 64 } 65 66 67 public int find(int data) { 68 69 /* 70 * 暂不详更高效查找的方法 71 */ 72 for(int j=0;j<=length-1;j++) { 73 if(a[j]==data) { 74 return j; 75 } 76 } 77 return -1; 78 } 79 80 public void update(int index,int data) { 81 if(index<=length-1&&index>=0) { 82 a[index]=data; 83 } 84 else { 85 System.out.println("数组越界"); 86 } 87 } 88 89 90 }