c/c++ c言链表
数组缺点
1: 如果删除数组中的一个数,要移动后面很多的数据;
2: 如果要插入一个数据,要移动后面的很多数据;
3: 如果要扩容的话,所有的数据都可能要复制一次;
链表
1: 链表的方式来存储数据: 一根线上串几个葫芦,形成一种”链条”;
2: 单向链表: 当前节点的数据 与 指向下一个节点的指针;
3: 双向链表: 当前节点数据与指向上一个节点的指针和指向下一个节点的指针;
通用链表设计
1:要保存一串数据只需保存头指针即可
2: 定义一个链接器数据结构;
;
2: 要做链表的节点包含这个结构;
3: 新节点指针域插入链表头
定义接口
实现接口
4:新节点指针域插入到链表尾部
5: 遍历列表里面所有的元素
遍历节点改为宏定义
删除节点
总结
1: 理解链表存储数据的方式;
2: 编码实现通用的链表,任何数据结构都可以使用;