彻底理解链表

本文通过卡车和火车的类比,解释了数组和链表在内存表示上的区别。数组如同卡车,需要预先申请连续的内存空间,一旦空间不足,必须重新分配并复制数据。而链表则类似火车,可以动态地申请和连接内存空间,不需连续,便于增删操作。总结来说,数组固定且静态,链表灵活且动态。
摘要由CSDN通过智能技术生成

数组和链表的关系可以类比卡车和火车的关系。
接下来看看数组以及链表在内存中是怎么表示的。
首先我们来看数组,假设你要装载的货物是16个字节,那么如果你想用数组来装载数据的话该怎么办呢?
很显然,你需要从内存中申请16个字节,而且是连续的字节,就像卡车一样,一上来容量就固定了。
这时如果你想在容量16个字节的数组中再装入8字节数据该怎么办?没办法,原来的数组就不再可用了,你需要再次从内存中申请24字节,并且把原来的数据copy过来,此后再把剩余的8字节装入数组。
接下来,我们看链表,依然假设需要装载的货物是40字节。链表与数组截然不同的地方在于就像火车一样,你无需一次性申请40字节的空间,而是一节车厢一节车厢的申请,而且更棒的是这些车厢也不需要和数组一样是连续的。
从这里也能看出来,数组是静态的,创建好后就不能改动;而链表是动态的,你可以根据需求来动态的增加或者减少链表的长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值