2012-12-20 35 views
-3

鏈接列表存儲其數據的位置?它是使用數組還是它如何工作?LinkedList構建在數組上

我知道它可以與節點一起工作,但它是如何實際存儲節點的?

+5

爲什麼不直接查看源代碼並親自查看它?沒有陣列。 –

+2

對於OpenJDK:http://www.docjar.com/html/api/java/util/LinkedList.java.html它由節點構建。 – nhahtdh

+2

在'Node'類的實例中。爲什麼不看一眼資料來源? – khachik

回答

3

一個Node鏈接到(即包含)下一個Node的順序。 LinkedList類實際上只包含列表中的第一個Node

例如: 甲聯的AB列表,C如下:

LinkedList包含一個成員變量AA包含一個成員變量BB包含一個成員變量CC包含一個null成員變量。

A - >B - >C - >null

如果你插入一個新的節點,它會成爲......

A - >B - >C - >D - >null

0

LinkedList不使用數組來存儲數據。這是一個雙向鏈表,它存儲在節點的數據

class Node<E> { 
    E item; 
    Node<E> next; 
    Node<E> prev; 
.... 
0

LinkedList的包含對象條目,這對下一個和以前的對象當前對象和參考。然後,這些next和previois對象還包含對象Entry,它具有當前對象和對下一個和上一個對象的引用AND等等。最終你有不同鏈接的對象鏈接。

這是鏈表內部類項:

private static class Entry<E> { 
    E element; 
    Entry<E> next; 
    Entry<E> previous; 
... 

其中例如元件是當前對象。

我希望我幫你。