Data Structure
文章平均质量分 61
believe209
这个作者很懒,什么都没留下…
展开
-
C语言实现双向链表[上]
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一结点开始,都可以很方便地访问它的前驱结点和后继结点。在C里面有两种类型的双向链表,我把它们分别叫做环类型(ring style)与线性类型(linear style)。网上大部分搜索到的都是双向循环链表的实现代码,具体见下篇。上篇主要实现的是带有头结点的双向链表。原创 2012-11-09 21:42:20 · 1031 阅读 · 0 评论 -
单链表、双向链表的比较
与单链表相比较,双向链表具有如下特点: (1)从任意一个结点开始,可以查找链表中的其他任意结点。 (2)既可以依照后继的方向(向后)遍历,也可以依照前驱的方向(向前)遍历。 (3)每个指针域中都增加了一个存储指针的空间,降低了存储密度。 (4)可以在当前结点前面或者后面插入,可以删除前趋和后继(包括结点自己)。 单链表只能在结原创 2012-11-11 20:33:23 · 4602 阅读 · 0 评论 -
C语言实现双向循环链表[下]
本次实现的是带有头结点的双向循环链表。此文参考了百度文库中的内容。其基本操作有14个。typedef struct DuLNode{ ElemType data; DuLNode *prior,*next;}DuLNode,*DuLinkList;//函数声明void InitList(DuLinkList *L);//初始化链表void ClearList(原创 2012-11-10 21:35:36 · 2265 阅读 · 0 评论 -
双向链表图解(前插操作,删除操作)
双向链表循环单链表的出现,虽然能够实现从任一结点出发沿着链能找到其前驱结点,但时间耗费是O(n)。如果希望从表中快速确定某一个结点的前驱,另一个解决方法就是在单链表的每个结点里再增加一个指向其前驱的指针域prior。这样形成的链表中就有两条方向不同的链,我们可称之为双(向)链表(Double Linked List)。双链表的结构定义如下:typedef struc转载 2012-11-13 21:33:31 · 29522 阅读 · 3 评论 -
双向链表插入结点分析和总结
主要是针对通用的插入结点时所需要注意的事项,对于深入了解具有指导意义。可以通过画图来分析,会有种豁然开朗的感觉。typedef struct DuLNode{ ElemType data; DuLNode *prior,*next;}DuLNode,*DuLinkList;1. 如果在链表中插入时仅仅指出直接前驱结点p,钩链时必须注意先后次序是: “先右后左”。部分语原创 2012-11-14 22:20:03 · 1985 阅读 · 0 评论 -
常用排序算法实现[交换排序之冒泡排序、快速排序]
基本讲解了排序算法的基础知识,并按照不同的分类从理论上进行了划分,主要实现了冒泡排序和快速排序,并进行了代码实现,希望能够起到简单明了的作用。原创 2014-06-23 13:48:37 · 761 阅读 · 0 评论