9-1 链表的引入

链表作为一种数据结构,旨在解决数组元素类型限制和大小不可变的问题。通过节点和指针,链表可以实现元素个数的动态扩展,提供比数组更灵活的空间管理。大学新校区的建设比喻解释了链表扩展的三种方式:拆迁(成本高)、搬迁(整体替换)和外部扩展(链表)。链表中的每个节点包含数据和指针,用于存储信息和连接下一个节点。
摘要由CSDN通过智能技术生成

九、链表&状态机&多线程

9.1.1 从数组的缺陷说起

(1)数组有2个缺陷,一个是数组中所有元素的类型必须一致;第二个是数组的元素个数必须事先指定并且一旦指定之后不能更改。
(2)如何解决数组的2个缺陷:数组的第一个缺陷靠结构体去解决。结构体允许其中的元素的类型不相同,因此解决了数组的第一个缺陷。所以说结构体是因为数组不能解决某些问题所以才发明的。
(3)如何解决数组的第二个缺陷?我们希望数组的大小能够实时扩展。譬如我刚开始定了一个元素个数是10,后来程序运行时觉得不够因此动态扩展为20.普通的数组显然不行,我们可以对数组进行封装以达到这种目的,我们还可以使用一个新的数据结构来解决,这个新的数据结构就是链表。
总结:几乎可以这样理解:链表就是一个元素个数可以实时变大/变小的数组。

9.1.2 大学为什么都有新校区?

(1)学校初建的时候(类似于变量定义并初始化时),这时候因为旁边都是荒地而没有建筑,因此学校的大小由自己定的;但是学校建立之后慢慢的也有了其他建筑(类似于这个变量分配了之后,内存的相邻区域又分配了其它变量与这个变量地址相连),这时候你的校园随着发展感觉不够用了想要扩展,却发现邻居已经住满了,校园的四周全部都是别人的建筑,这时候学校要扩展有2个办法:第一个是把旁边拆迁了,第二个是搬迁,第三个是外部扩展。
(2)拆迁基本行不通,因为成本太高了。
(3࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非主流的豆瓣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值