|
2.3.5 双向链表
顾名思义,双向链表(Double Linked List)的特点是其结点结构中含有两个指针域,其一指向数据元素的"直接后继",另一指向数据元素的"直接前驱",用
C 语言描述如下:
|
|
很明显,在双向链表中不仅能直接找到结点的前驱,也能即刻找到结点的后继。
|
|
|
typedef
struct DuLNode {
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
} DuLNode, *DuLink;
|
|
假设指针p指向双向链表中某个结点,则
p->prior->next = p
p->next->prior = p
|
|
|
与单链表类似,双向链表也是由指向头结点的头指针唯一确定,若将头尾结点链接起来则构成双向循环链表。空的双向循环链表则由只含一个自成双环的头结点表示。
|
|
|
|