2013-05-14 103 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; 

表示您的新元素变为第一个