数据结构之单链表

引言

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


本期内容目标

一、什么是链表?

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

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

二、实现单链表

1.创建单链表的结构:

2.实现单链表的打印:

3.实现头插:

4.实现头删:

5.实现尾插

6.实现尾删

7.查找指定节点

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

9.删除指定位置pos节点

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

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

12.销毁链表

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

总结

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


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

相关推荐
iuu_star4 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法
漫随流水4 小时前
leetcode算法(515.在每个树行中找最大值)
数据结构·算法·leetcode·二叉树
千金裘换酒6 小时前
LeetCode反转链表
算法·leetcode·链表
一起努力啊~9 小时前
算法刷题--长度最小的子数组
开发语言·数据结构·算法·leetcode
小北方城市网9 小时前
第1课:架构设计核心认知|从0建立架构思维(架构系列入门课)
大数据·网络·数据结构·python·架构·数据库架构
好易学·数据结构9 小时前
可视化图解算法77:零钱兑换(兑换零钱)
数据结构·算法·leetcode·动态规划·力扣·牛客网
独自破碎E10 小时前
【归并】单链表的排序
数据结构·链表
L_090710 小时前
【C++】高阶数据结构 -- 平衡二叉树(AVLTree)
数据结构·c++
冰冰菜的扣jio10 小时前
Redis基础数据结构
数据结构·数据库·redis
Qhumaing10 小时前
C++学习:【PTA】数据结构 7-2 实验6-2(图-邻接表)
数据结构·c++·学习