【图解】ACM 选手带你玩转链表

大家好呀,我是蛋蛋。

数组的文章中给臭宝们说过,连续的内存使得数组在进行插入和删除时需要移动大量元素,这就意味着要耗费时间。

在数据结构与算法中,快男才是大家的最爱,像插入和删除这么持久的蓝孩子显然不受待见。

后来,大家就想方设法帮助它们变快。

那么有没有这么一种数据结构可以达成这一目的呢?

链表就这么被整出来了。

d1006cbf953b1c369fc77752279c788

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

4aae5e0315aaaa5b5cfb92c96ea43ad

链表

首先什么是链表?

线性表的链式存储结构生成的表,叫做链表。

那么什么是链式存储结构咧?

链式存储结构是指用一组任意的存储单元存储线性表的数据元素,通过指针连接串联起来。

79ae9c1e2053f70296f2e8afad16ad7

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

1c030d9ef23a82ddaa45a4e2eac5bc4

链表中的存储单元叫做节点。它和数组中只存数据信息不同,每个节点分为两部分:数据域和指针域。数据域存储的数据,指针域存储着同一个表里下一个节点的位置。

因为链表家族里的兄弟姐妹太多,在这里咧我只讲常见的几种链表结构:单链表、双向链表。

毕竟再多,我写的就累死了。。

单链表

n 个节点可以链接成一个链表,如果链表中的每个节点只包含一个指针域,这个链表就叫做单链表。

单链表的指针域指向的是下一个节点的地址,我们把指向下个节点地址的指针叫做后继指针

efd3fd26ffecf1491a572b14055e9c7

单链表的第一

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值