c/c++ c言链表

数组缺点

1: 如果删除数组中的一个数,要移动后面很多的数据;

2: 如果要插入一个数据,要移动后面的很多数据;

3: 如果要扩容的话,所有的数据都可能要复制一次;

这里写图片描述


链表

1: 链表的方式来存储数据: 一根线上串几个葫芦,形成一种”链条”;
这里写图片描述
2: 单向链表: 当前节点的数据 与 指向下一个节点的指针;
这里写图片描述
3: 双向链表: 当前节点数据与指向上一个节点的指针和指向下一个节点的指针;
这里写图片描述


通用链表设计

1:要保存一串数据只需保存头指针即可
这里写图片描述

2: 定义一个链接器数据结构;

这里写图片描述
;
这里写图片描述

2: 要做链表的节点包含这个结构;

这里写图片描述

这里写图片描述
3: 新节点指针域插入链表头
定义接口

这里写图片描述

实现接口

这里写图片描述

这里写图片描述

4:新节点指针域插入到链表尾部
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

5: 遍历列表里面所有的元素

这里写图片描述

这里写图片描述


这里写图片描述


遍历节点改为宏定义

这里写图片描述

这里写图片描述


删除节点

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


总结

1: 理解链表存储数据的方式;
2: 编码实现通用的链表,任何数据结构都可以使用;


–>源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值