大家好呀,我是蛋蛋。
数组的文章中给臭宝们说过,连续的内存使得数组在进行插入和删除时需要移动大量元素,这就意味着要耗费时间。
在数据结构与算法中,快男才是大家的最爱,像插入和删除这么持久的蓝孩子显然不受待见。
后来,大家就想方设法帮助它们变快。
那么有没有这么一种数据结构可以达成这一目的呢?
链表就这么被整出来了。

相比于数组,链表是稍微复杂一些的数据结构,但是不难,只要跟着本蛋就能学会。

链表
首先什么是链表?
线性表的链式存储结构生成的表,叫做链表。
那么什么是链式存储结构咧?
链式存储结构是指用一组任意的存储单元存储线性表的数据元素,通过指针连接串联起来。

这里的“任意”指的就是,**存储单元可以连续也可以不连续,这就意味着它们可以是内存中任何未被占用的地方。**有味儿点讲就是只要内存这个厕所里空着的茅坑,你就随便蹲。

链表中的存储单元叫做节点。它和数组中只存数据信息不同,每个节点分为两部分:数据域和指针域。数据域存储的数据,指针域存储着同一个表里下一个节点的位置。
因为链表家族里的兄弟姐妹太多,在这里咧我只讲常见的几种链表结构:单链表、双向链表。
毕竟再多,我写的就累死了。。
单链表
n 个节点可以链接成一个链表,如果链表中的每个节点只包含一个指针域,这个链表就叫做单链表。
单链表的指针域指向的是下一个节点的地址,我们把指向下个节点地址的指针叫做后继指针。
链表解析:ACM选手教你轻松掌握

本文由蛋蛋讲解链表,包括单链表和双向链表的概念、操作及应用场景。单链表的插入和删除操作时间复杂度为O(1),查找为O(n)。双向链表增加了前驱指针,方便前后查找,插入和删除操作在特定条件下更快。文章适合对数据结构感兴趣的读者学习。
最低0.47元/天 解锁文章
3692

被折叠的 条评论
为什么被折叠?



