java的線性表實現


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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM