1、双向链表的定义:双向链表也是链表的一种,它每个数据结点中都有两个结点,分别指向其直接前驱和直接后继。所以我们从双向链表的任意一个结点开始都可以很方便的访问其前驱元素和后继元素。
2、双向链表的节点结构:
3、双向链表的存储结构:
双向链表也是采用的链式存储结构,它与单链表的区别就是每个数据结点中多了一个指向前驱元素的指针域 ,它的存储结构如下图:
4、当双向链表只有一个节点的时候它的存储结构:
5、双向链表的实现与操作:
(1)dlist.h:
#pragma once
//带头节点的双向链表,不循环
//链表尾节点的next为NULL,头节点的prio为NULL
typedef struct DNode
{
int data; //数据
struct DNode *next;//下一个节点的地址
struct DNode *prio;//前趋节点的地址
}DNode,*DList;
//初始化
void InitL