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 }