鏈式結構

發表是最好的記憶發表於2013-12-01

鏈式結構是一種資料結構,它使用物件引用變數來建立物件間的連結。鏈式結構是基於陣列的集合實現的主要替代方案。

舉例:我們來建立一個Person類,類內部除了含有普通的屬性外,還包含著一個指向另一個Person物件的引用變數

public class Person(){

  private String name;

  private String address;

  private Person next;        //指向另一個Person物件的引用變數

  //省略屬性的get,set方法

}

以上的Person類就是一個鏈式結構,又稱自引用(self-referential)

連結串列就是鏈式結構的一種,與大小固定的陣列不同,如果不考慮計算機本身的記憶體限制,連結串列容量是沒有上限的。

由於連結串列的大小可以按需伸縮以容納要儲存的元素個數,因此連結串列是一種動態結構

&&&&由於以上這個原因,導致由連結串列實現的集合比陣列實現的集合在增,刪方面,效能更高。

1.訪問元素

相應的連結串列的訪問元素方面就不及陣列了,對於連結串列來說,訪問連結串列中元素的唯一方式就是:從第一個元素開始,順著該連結串列往下

可想而知如果集合很大,又要尋找最後一個元素,效能就會很低,如檢索儲存了Person類的連結串列的第四個元素,我們只能:

Person current = first;

for(int i = 0; i < 3; i++){

  current = current.next;

}

而陣列是基於索引的檢索

2.插入元素

結點可以被插入到連結串列的任何位置,連結串列的前端,連結串列的內部結構之間,連結串列的末端。

在連結串列前端插入結點,需要重新設定指向整個連結串列的引用。首先,新增結點的next引用被設定為指定連結串列的當前首節點,接著,指向連結串列前端的引用重新設定為指向這個

新增加的結點。

 

 

 

 

 

 

 

 

 

 

相關文章