本文目录
1 什么是链表
链表是一种用于存储数据集合的数据结构。链表有如下属性:
(1)相邻元素之间通过指针连接;
(2)最后一个元素的后继指针值为null;
(3)在程序执行的过程中,链表的长度可以增加或缩小;
(4)链表的空间能够按需分配(直到系统资源耗尽);
(5)没有内存空间的浪费(但是链表中的指针需要一些额外的内存开销)。
2 链表抽象数据类型
链表抽象数据类型中的操作主要有:
(1)主要操作
a)插入:插入一个元素到链表中;
b)删除:移除并返回链表中指定位置的元素。
(2)链表的辅助操作
a)删除链表:移除链表中的所有元素(清空链表);
b)计数:返回链表中元素的个数;
c)寻找:寻找从链表表尾开始的第n个结点。
下述内容参考:《数据结构与算法经典问题解析》一书,待补充:
3 单向链表
3.1 插入操作
3.1.1 在链表头插入
3.1.2 在链表尾插入
3.1.3 在链表中间任意位置插入
3.2 删除查找
3.2.1 在链表头删除
3.2.2 在链表尾删除
3.2.3 在链表中间任意位置删除
4 双向链表
4.1 插入操作
4.1.1 在链表头插入
4.1.2 在链表尾插入
4.1.3 在链表中间任意位置插入
4.2 删除查找
4.2.1 在链表头删除
4.2.2 在链表尾删除
4.2.3 在链表中间任意位置删除
5 循环链表
5.1 插入操作
5.1.1 在链表头插入
5.1.2 在链表尾插入
5.1.3 在链表中间任意位置插入
5.2 删除查找
5.2.1 在链表头删除
5.2.2 在链表尾删除
5.2.3 在链表中间任意位置删除