美文网首页
双向链表的定义及相关操作

双向链表的定义及相关操作

作者: Jorunk | 来源:发表于2020-01-17 12:03 被阅读0次

typedef struct DualNode
{
  ElemType data;
  struct DualNode *prior;  //前驱结点
  struct DualNode *next;   //后继结点
} DualNode, *DuLinkList;


  • 代码实现:
  s->next = p;  
  s->prior = p->prior;  
  p->prior->next = s;   
  p->prior = s;
  • 关键在于交换的过程中不要出现矛盾,例如第四步先被执行了,那么p->prior就会提前变成s,使得插入的工作出错。严重性打个比方就是打电话给老婆的时候不小心叫成小三的名字!
  • 代码实现:
  p->prior->next = p->next;
  p->next->prior = p->prior;    
  free(p);
  • 最后总结一下,双向链表相对于单链表来说,是要更复杂一点,每个结点多了一个prior指针,对于插入和删除操作的顺序大家要格外小心。

相关文章

  • 双向链表的定义及相关操作

    代码实现: 关键在于交换的过程中不要出现矛盾,例如第四步先被执行了,那么p->prior就会提前变成s,使得插入的...

  • 9.双向链表DoubleLinkList

    目录:1.双向链表的定义2.双向链表的图解3.双向链表定义操作4.双向链表的实现 1.双向链表的定义 2.双向链表...

  • 双向链表&双向循环链表

    链表分为:单链表、单向循环链表、双向链表、双向循环链表本节主要说明:双向链表、双向循环链表 定义结点 一、双向链表...

  • 线性表-双向链表与双向循环链表

    双向链表 双向链表示意图如下: 数据结构定义 创建双向链表 双向链表插入元素 双向链表删除元素 双向链表打印元素 ...

  • Java常用类库与技巧-集合

    一 数据结构常见问题 数组和链表的区别;链表的操作,如反转,链表环路检测,双向链表,循环链表相关操作;队列,栈的应...

  • Linux内核链表

    单向链表 结构体定义 单向链表示意图 双向链表 结构体定义 双向链表示意图 Linux内核链表 Linux内核定义...

  • 数据结构与算法04-双向链表以及双向循环链表

    一、双向链表 0、定义结点 1、创建双向链接 2、打印循环链表的元素 3、双向链表插入元素 4、删除双向链表指定位...

  • 6.双向链表

    双向链表结构: 既然单链表可以有循环链表,那么双向链表当然也可以有: 双向链表的插入操作: s->next = p...

  • 双向链表

    双向链表定义: “双向链表”相对于“单向链表”是一种更复杂的链表。原因在于, 双向链表的每个节点有两...

  • 数据结构之双向链表

    1.双向链表 1.1双向链表创建示意图 分析 双向链表的遍历,添加,修改,删除的操作思路===》代码实现: 遍历 ...

网友评论

      本文标题:双向链表的定义及相关操作

      本文链接:https://www.haomeiwen.com/subject/kxeczctx.html