为什么要使用链表
在未学习链表时,我们常用的存储数据的方式无非就是数组。使用数组存储数据的好处就是查询快,但是它的弊端也很明显:
- 使用前需声明数组的长度,一旦声明长度就不能更改
- 插入和删除操作需要移动大量的数组元素,效率慢
- 只能存储一种类型的数据.
而链表则可以实现以上这些数组所不具备的功能,此时引入了结构体来实现创建链表的操作。
链表的特点:
- n个节点离散分配
- 每一个节点之间通过指针相连
- 每一个节点有一个前驱节点和一个后继节点
- 首节点没有前驱节点,尾节点没有后继节点
首先先定义一个简单的结构体
struct link{
int data; //定义数据域
struct link *next; //定义指针域,存储直接后继的节点信息
};
数据域的类型和数据由自己指定,指针域用