说明 相比Linux内核链表宿主结构可有多个链表结构的优点,本函数集侧重封装性和易用性,而灵活性和效率有所降低。 可基于该函数集方便地构造栈或队列集。 本函数集暂未考虑并发保护。一 概念 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序通过链表中的指针链接次序实现。链表由...
分类:
编程语言 时间:
2014-06-28 13:42:52
阅读次数:
379
双向循环链表list
list是双向循环链表,每一个元素都知道前面一个元素和后面一个元素。
list和vector的区别:
在list中,由于其内存分配是非连续的,因此不能像vector那样用[]操作符取值,而只能用迭代器来访问list中的元素。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vec...
分类:
其他好文 时间:
2014-06-22 21:33:58
阅读次数:
215
链表数据结构的定义很简洁:
struct list_head {
struct list_head *next, *prev;
};
list_head结构包含两个指向list_head结构的指针prev和next,该内核链表具备双链表功能,通常它都组织成双循环链表,这里的list_head没有数据域。在Linux内核链表中,不是在链表结构中包含数据,而是在数据结构中包含链表节点。...
分类:
系统相关 时间:
2014-06-22 21:17:54
阅读次数:
312
ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下:
ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表实现的List
特点:查...
分类:
其他好文 时间:
2014-06-16 10:07:45
阅读次数:
291
我个人比较喜欢学习数据结构,而Linux内核中实现的数据结构会是我们去学习、理解和应用数据结构的一个很好途径。这里介绍内核中广泛应用的四种数据结构:链表、队列、映射和二叉树。
链表:
Linux内核讲求高效精简,所以有时需要我们动态去创建和分配内存,这时就要借助链表,我们根据实际情况分配内存后,只需修改链表的指针,仍能索引到刚分配的内存区。链表分单向链表、双向链表和循环链表。...
分类:
系统相关 时间:
2014-06-15 15:19:43
阅读次数:
343
将链表头尾倒置将几个链表合并成一个新的链表,将链表中重复的节点去掉,并按大小排序双向循环链表单向循环链表(约瑟夫循环)多项式相加程序源代码单链表、单向循环链表结点类packagejavab;publicclassNode{intdata;Nodenext;publicNode(intdata){th...
分类:
编程语言 时间:
2014-06-14 19:39:06
阅读次数:
267
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。以下是使用循环链表和数组的两种实现:
分类:
其他好文 时间:
2014-06-12 21:18:46
阅读次数:
251
链表的分类:
单链表:
双链表:
每一个节点有两个指针域
循环链表:
能通过任何一个节点找到其它所有的结点
非循环链表:
算法:
遍历
查找
清空
销毁
求长度
排序
删除节点
插入节点
下面举个例子
例1:
{CSDN:C...
分类:
其他好文 时间:
2014-06-10 06:58:23
阅读次数:
244
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
循环链表的操作
1,循环链表的新操作
2, 获取当前游标指向的数据元素
3, 将游标重置指向链表中的第一个数据元素
4,将游标移动指向到链表中的下一个数据元素
5,直接指定删除链表中的某个数据元素
CircleListNode* CircleList_DeleteNode(CircleList* list, CircleListNode* node);
CircleListNode* Ci...
分类:
编程语言 时间:
2014-06-08 17:04:24
阅读次数:
242
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
单链表的局限
1,单链表的结点都只有一个指向下一个结点的指针
2,单链表的数据元素无法直接访问其前驱元素
3,逆序访问单链表中的元素是极其耗时的操作...
分类:
编程语言 时间:
2014-06-08 02:16:06
阅读次数:
352