1,436 views

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点, 一般我们都构造双向循环链表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void CreateDlistR (DLNode *&L, int a[], int n){
    DLNode *s,*r;
    int i;
    L = (DLNode*)malloc(sizeof(DLNode));
    L->next = NULL;
    r = L; //和单链表一样r始终指向终端结点,开始头结点也是尾结点
     for(i = 1; i< = n; i++){
    s = (DLNode*)malloc(sizeof(DLNode));      //创建新结点s->data = a[i];
  /*下边3句将s插入在L的尾部并且r指向s,s->prior = r;这一句是和建立单链表不同的地方。*/
        r->next = s;
        s->prior = r;
        r = s;
    }
    r->next = NULL;
}

发表评论

电子邮件地址不会被公开。