双向链表

Posted niujifei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双向链表相关的知识,希望对你有一定的参考价值。

双向链表

  管理单向链表的缺点分析

    1、单向链表,查找的方法只能是一个方向,而双向链表可以向前或者向后查找

    2、单线链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除。

   应用实例:使用带 head 头的双向链表实现 — 水浒英雄排行榜  

   双向链表如何完成遍历,添加,修改和删除的思路示意图:

技术图片

 

 

    对上图的说明:

  (1)遍历方式同单链表一样,可以向前遍历,也可以向后查找

  (2)添加(默认添加到双向链表的最后)

    ① 先找到双向链表的最后这个节点temp

    ② temp.next = newHeroNode;

    ③ newHeroNode.pre = temp;

  (3)修改思路同单向链表一样 

  (4)删除 

    ① 因为是双向链表,可以实现自我删除某个节点

    ② 直接找到要删除的这个节点,比如temp

    ③  temp.pre.next = temp.next;

    ④ temp.next.pre = temp.pre;(注意:这里需要分析看看temp是否为最后一个节点,如果则不需要这句话)

  (5)第二种添加方式,按照编号顺序添加

     代码实现:

 

以上是关于双向链表的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(链表——双向链表的实现)

带头节点的双向链表

双向链表的原理与实现

数据结构之带头结点的循环双向链表详细图片+文字讲解

Python数据结构与算法(2.4)——双向链表

双向链表