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
 
    与单链表类似,双向链表也是由指向头结点的头指针唯一确定,若将头尾结点链接起来则构成双向循环链表。空的双向循环链表则由只含一个自成双环的头结点表示。动画