日期:2014-05-20  浏览次数:20718 次

JAVA单链表的困惑

/*
 * 此方法在表头插入一个新链节点。 first是头链表的引用; 1,每调用一次insertFirst方法,new一个新的Link对象;
 * 2,将头链表first的引用,交给下一个链节点next; 3,将new出来的新链节点交给first头链节点。 对引用的操作,是链表算法的核心。
 */
public void insertFirst(int id, double dd) {
Link newLink = new Link(id, dd);
newLink.next = first;
first = newLink;
}


我始终不明白,或者是我理解不透。
newLink.next = first;
first = newLink;

这两句是方法的核心算法,也是引用的核心算法。
newLink.next和newLink有什么区别???
引用 单链表 Java

------解决方案--------------------
很明显不一样呀,newLink.next是newLink的一个属性,而newLink是一个对象
这是数据结构单链表的前插算法呀,你可以看看C++指针写的前插,结合两者,你会发现一些共同的问题。
------解决方案--------------------
引用:
很明显不一样呀,newLink.next是newLink的一个属性,而newLink是一个对象
这是数据结构单链表的前插算法呀,你可以看看C++指针写的前插,结合两者,你会发现一些共同的问题。


不理解就画图
------解决方案--------------------
引用:
我总算弄明白了,看来是我走火入魔了。newLink.next是对下一个对象的引用,如果下一个对象不存在,那么这个引用的值就是null;newLink是增加的对象的引用。

说得还真贴切,真是练功“走火入魔”的表现,幸好现在网络方便,否则就有很多耽误事的时候了。