数据结构(九)

来源:互联网 发布:机器人算法有哪些 编辑:程序博客网 时间:2024/05/01 14:22

一、双向链表


双向链表是指在前驱和后继方向都能游历(遍历)的线性链表。
双向链表每个结点结构:

双向链表通常采用带表头结点的循环链表形式。


结点指向 p == p->prior->next == p->next->prior


二、双向循环链表的定义


typedef int ListData;


typedef struct dnode {
    ListNode data;                          //数据
    struct dnode * prior, * next;     //指针
} DblNode;


typedef DblNode * DblList;         //双向链表   


三、建立空的双向循环链表


void CreateDblList ( DblList & first ) {
    first = ( DblNode * ) malloc 
                   ( sizeof ( DblNode ) );
    if ( first == NULL )
        { print ( “存储分配错!\n” );  exit (1); }
    first->prior = first->next = first;
           //表头结点的链指针指向自己
}

0 0
原创粉丝点击