2013-05-14 139 views
0

好的,解決方案可能非常簡單,但目前我不明白。將元素添加到單鏈錶鏈接

代碼:

ListElem<T> first; 
int size = 0; 
public void add(T value) { 
    if (value == null) 
    return; 
    ListElem<T> elem = new ListElem<T>(value); 
    elem.next = first; 
    first = elem; 
    size++; 
} 

究竟這是如何在singlechained鏈表的開頭添加一個元素? 我用給定的值創建一個新元素。

接下來的兩行會發生什麼?我理解在列表中插入元素的過程,但我無法將其與此代碼關聯起來。

首先是什麼?頭部?

回答

3

然後加入堆棧看起來是這樣的:

第一 - >下一步 - >下一步 - > - >結束;

您創建了elem。

然後你說「元素的下一個元素是第一個元素」。

elem.next = first;所以你必須

ELEM - >第一;

最後你設置第一個elem elem。所以堆棧看起來像這樣:

elem - > first - > next - > ... - > end;

和第一ID現在ELEM所以基本上你回到第一狀態:

第一 - >下一步 - >下一步 - > - >結束; (第一個是你剛纔添加的新ELEM)

這個模式可能會有所幫助:

enter image description here

+0

感謝您的圖形! – Pulz

+0

希望現在更清楚:) –

0
elem.next = first; 

意味着先前的第一要素應該是旁邊的新元素

first = elem; 

表示您的新元素變爲第一個