线性表-双向链表
clearList 的作用是把链表恢复到最初始的状态,也就是构造函数刚构造完成后的样子,只有一个Head节点,它的Next 和 prior 都指向自身。再就是那个ListLength的函数有些问题,但已改正过来了。
---------------------------------------------------------------------------------------------------
2015-5-3 15:09:27:
双向循环链表有两个指针,一个指向前面元素,一个指向后面元素,具体的结构如下图所示:
上面图中的绿箭头指向其前一个元素,紫箭头指向后一个元素,每个模块都有两个指针,两个指针内部存放的分别是前后两模块的地址:
上面展示了双向循环链表的结构,有一个头结点,如果为空的话,头结点的前后两个指针内部存放的都是头结点本身的地址,即前后两指针都指向自身,可以用Head->next==Head来判断是不是空的,Head是头指针。
双向循环链表的插入和删除也没有什么难的地方,无非就是要注意有两个指针,交接工作要做好:
双链表插入:(寻找要插入位置前一个节点指针)
双向链表删除(寻找要删除节点的指针)
双向链表遍历:
temp=Head->next;
while(temp->next !=Head)
{ visit(&temp->data) ;temp=temp->data;}