数据结构之单链表

引言

哈喽,各位老铁。本期博主给大家带来更加精彩的内容-----单链表;前面给大家分享的顺序表它存在一个缺陷,就是我们以2倍进行增容,开辟的内存大,造成了严重的的内存资源浪费;为了避免造成内存浪费,我们就需要学习单链表。


本期内容目标

一、什么是链表?

我们都知道火车都是由车头和一节一节的车厢组成的。在运输淡季时我们可以减少车厢,在运输旺季我们可以增加车厢;其实链表的结构和火车的结构很类似;链表就是一种数据存储结构,它的结构上非连续、非顺序;链表的数据元素是由指针实现的;

相比小火车的结构,我们不难画出单链表的结构

二、实现单链表

1.创建单链表的结构:

2.实现单链表的打印:

3.实现头插:

4.实现头删:

5.实现尾插

6.实现尾删

7.查找指定节点

8.指定位置pos之前插入节点

9.删除指定位置pos节点

10.在指定位置pos之后插入节点

11.删除指定位置pos之后节点

12.销毁链表

至此就实现了一个单链表,以及实现了它的增删查改的功能;

总结

掌握链表,不仅是理解 "指针 + 结构体" 在数据结构中的经典应用,更能培养我们对非线性存储、内存动态管理的思维能力。它是后续学习双向链表、循环链表,乃至更复杂数据结构(如链表与树、图的结合)的基础,在实际开发中(如操作系统内存管理、某些缓存结构设计)也有广泛应用。通过本期对链表从 "是什么" 到 "怎么用" 的全流程学习,相信你已对这一数据结构建立了清晰且扎实的认知,不妨在实践中进一步尝试优化链表操作,或探索其与其他数据结构的联动吧!


行文至此,本期要给大家分享的内容就到这里了;新的内容也正在努力创作中,如果你觉得博主的文章对你有帮助三连支持一下;你的支持是我持续创作最大的动力;我们下期不见不散。

相关推荐
AI科技星5 分钟前
为什么宇宙无限大?
开发语言·数据结构·经验分享·线性代数·算法
合方圆~小文1 小时前
AI摄像头精准识别技术依赖于深度算法
数据结构·数据库·数码相机·模块测试
松涛和鸣2 小时前
16、C 语言高级指针与结构体
linux·c语言·开发语言·数据结构·git·算法
FuckPatience4 小时前
C# 实现元素索引由1开始的链表
开发语言·链表·c#
小欣加油5 小时前
leetcode 1018 可被5整除的二进制前缀
数据结构·c++·算法·leetcode·职场和发展
无敌最俊朗@5 小时前
链表-力扣hot100-随机链表的复制138
数据结构·leetcode·链表
玖剹6 小时前
递归练习题(四)
c语言·数据结构·c++·算法·leetcode·深度优先·深度优先遍历
Mz12217 小时前
day04 小美的区间删除
数据结构·算法
希望有朝一日能如愿以偿9 小时前
力扣每日一题:能被k整除的最小整数
数据结构·算法·leetcode
Rock_yzh11 小时前
LeetCode算法刷题——128. 最长连续序列
数据结构·c++·算法·哈希算法