目录
2.3.3 双链表
- 为什么要引入双链表:单链表只能从头结点开始依次的往后遍历,当需要访问前一个结点时,时间复杂度达到了O(n),因此引入了双链表解决这一问题。
- 双链表的一个结点有两个指针prior和next,分别指向前驱结点和后继结点。
- 双链表结构如下:
typedef struct DNode{ ElemType data; struct DNode *prior,*next; }DNode;
- 双链表的按值查找和按位查找与单链表相同,因为存在着prior和next两个指针,因此插入和删除操作与单链表有着较大不同。插入、删除的关键是不断链。