数据结构之单链表

引言

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


本期内容目标

一、什么是链表?

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

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

二、实现单链表

1.创建单链表的结构:

2.实现单链表的打印:

3.实现头插:

4.实现头删:

5.实现尾插

6.实现尾删

7.查找指定节点

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

9.删除指定位置pos节点

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

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

12.销毁链表

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

总结

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


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

相关推荐
琢磨先生David3 天前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
qq_454245033 天前
基于组件与行为的树状节点系统
数据结构·c#
超级大福宝3 天前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
岛雨QA3 天前
常用十种算法「Java数据结构与算法学习笔记13」
数据结构·算法
weiabc3 天前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法
wefg13 天前
【算法】单调栈和单调队列
数据结构·算法
岛雨QA3 天前
图「Java数据结构与算法学习笔记12」
数据结构·算法
czxyvX3 天前
020-C++之unordered容器
数据结构·c++
岛雨QA3 天前
多路查找树「Java数据结构与算法学习笔记11」
数据结构·算法
AKA__Zas3 天前
初识基本排序
java·数据结构·学习方法·排序