线性表-双向链表

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;}

 

posted @ 2015-04-28 21:47  韩冰云  阅读(255)  评论(0编辑  收藏  举报