一、简单介绍: Linux中的链表使用两个指针。能够方便的构成双向链表。实际上。通常它都组织成双向循环链表。不同于数据结构书上的链表,这里的节点仅仅有链表指针。没有链表的数据。下边我将对内核中使用的 include/linux/list.h 进行函数说明和生动的图形解释。二、函数:我们先来看看1. ...
分类:
其他好文 时间:
2017-08-07 20:37:11
阅读次数:
183
训练一下尾插法和循环链表的使用。 运行效果: 以前不会尾插法的时候,我的循环链表是这样的: 这是我用以前的方法实现的,但有很多问题因为这样的方法会找不到头结点的,因而只有一部分可以成功实现效果: (一) (二) ...
分类:
其他好文 时间:
2017-08-06 15:00:40
阅读次数:
143
双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_f ...
分类:
编程语言 时间:
2017-08-05 00:12:50
阅读次数:
142
一、源码解析 1、 LinkedList类定义。 LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口,即能将 ...
分类:
编程语言 时间:
2017-08-03 21:51:32
阅读次数:
161
下面以一个电子英汉词典程序(以下简称电子词典)为例,应用双向循环链表。分离数据结构,可以使逻辑代码独立于数据结构操作代码,程序结构更清晰,代码更简洁;电子词典的增、删、查、改操作分别对应于链表的插入、删除、查找、查找和获取链表元素操作。 在程序初始化时,除了初始化链表,还要将保存在文件中的词库加载到 ...
分类:
编程语言 时间:
2017-07-30 20:03:36
阅读次数:
245
链表学的有点懵。总之就是SList,DList的head是随着插入的对象变化的,而循环链表的head是恒定的,在循环链表的任何操作中,都不能出现给head赋值的语句。 非循环的DList,在size==1的时候,head=tail; head.next=null; tail.pre=null 。此时 ...
分类:
其他好文 时间:
2017-07-23 13:38:49
阅读次数:
182
操作 is_empty() 判断链表是否为空 length() 返回链表的长度 travel() 遍历 add(item) 在头部添加一个节点 append(item) 在尾部添加一个节点 insert(pos, item) 在指定位置pos添加节点 remove(item) 删除一个节点 sear ...
分类:
编程语言 时间:
2017-07-20 10:06:00
阅读次数:
207
双链表的操作 利用链表的尾插法建立双链表: 查找结点的算法实现: 插入算法的实现: 删除算法的实现: 无论是循环单链表还是循环多链表,无非就是将链表的尾部终结点与头结点相连接;循环双链表就是头结点的前驱为终结点,终结点的后继为头结点;判断一个循环链表是否走到了尾部,只需要语句: ...
分类:
其他好文 时间:
2017-07-15 13:57:37
阅读次数:
170