目录
前言
上一篇博客简单介绍了动态顺序表,让我们对动态顺序表有了一定的了解。但我们也发现动态顺序表的一些劣势,增容一般是按2倍的方式增长,很容易造成空间的巨大浪费。在增容过程中可能还会出现拷贝原有数据,释放旧空间后再开辟新空间的情况,也会造成不小的空间损耗和时间损耗。
所以针对这些问题我们就希望建立了一种新的表格方式,随时需要增加多少空间就增加多少,不需要哪一部分就删除哪一部分的新的序表模型------链表。
链表的概念及结构
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表的分类
实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:

链表的实现
我们主要实现最常见的两种链表:无头单向非循环链表和带头双向循环链表
1.无头单向非循环链表
链表的主要接口

链表节点的申请

创建一个链表

打印单链表

单链表尾插

单链表尾删

单链表头插

单链表头删

单链表查找

单链表pos位置后插入x

单链表在指定位置pos前插入

单链表删除pos位置之后的元素

单链表删除指定pos位置的元素

销毁链表

2.带头双向循环链表
链表的主要接口

创建一个节点

链表初始化

删除链表

打印链表数据

尾插

尾删

头插

头删

寻找某一元素的地址

在指定pos位置前插入元素

删除指定pos位置的元素

查询链表元素个数

检查链表是否为空

总结
本篇文章主要介绍了两种主要链表和他们的实现,代码量看其多,实则内容相对简单,大家可以根据需求阅读。