线性表和链表
单向链表利用了类的自引用,实现了类似指针的效果。
双向链表的实现,必须注意双向链表的head和back两个指针的正确指向,以及插入和删除过程中指向操作增减的有序性。
下面几图从java面向对象的角度说明了单向双向链表的逻辑结构,类的自引用使得逻辑指向成为可能。
以下两图说明了添加删除头尾节点时执行的顺序:
添加头结点时先加一个临时节点,建立此临时节点和原头节点后使此临时节点为新头结点即可。
删除尾节点时先使原次头结点为新头结点,然后删除原头节点和新头结点的连接后,再删除新头结点和原头结点的连接。
尾节点的处理方法类似。
这样的删除方法能够完全释放所有的占用空间。
下面是双向链表的实现过程,包括链表类NodeList的插入删除操作。
public class TestList
{ </