码迷,mamicode.com
首页 > 其他好文 > 详细

双向链表

时间:2017-09-21 09:47:45      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:数据结构   双向链表   线性表   

   双向链表的概念比较简单,只是在之前单链表的的基础上,每个结点多增加了一个指向直接前驱的指针。双向链表的存储结构定义如下:

typedef struct DulNode{

    ElemType data;
    struct DulNode *prior;
    struct DulNode *next;
}DulNode, *DuLinkList;

   双向链表的操作基本上和单链表的操作一模一样。这里,实现一下链表元素的插入操作。比如,插入一个元素s,s之前一个结点是p。那么,只要把s的直接前驱指针指向p,把s的直接后继指针指向p的指向。然后,把p的直接后继指针指向s,把s的下一个结点的直接前驱指针指向s。代码如下:

s->prior = p;
s->next = p->next;
p->next = s;
p->next->prior = s;

   元素的删除操作与元素的插入操作类似。假设删除元素p。代码如下:

p->prior->next = p->next;
p->next->prior = p->prior;
free ( p );    //释放p结点


本文出自 “梵高说我脑子有病” 博客,请务必保留此出处http://chen0547.blog.51cto.com/12489941/1967268

双向链表

标签:数据结构   双向链表   线性表   

原文地址:http://chen0547.blog.51cto.com/12489941/1967268

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!