数组和链表的关系可以类比卡车和火车的关系。
接下来看看数组以及链表在内存中是怎么表示的。
首先我们来看数组,假设你要装载的货物是16个字节,那么如果你想用数组来装载数据的话该怎么办呢?
很显然,你需要从内存中申请16个字节,而且是连续的字节,就像卡车一样,一上来容量就固定了。
这时如果你想在容量16个字节的数组中再装入8字节数据该怎么办?没办法,原来的数组就不再可用了,你需要再次从内存中申请24字节,并且把原来的数据copy过来,此后再把剩余的8字节装入数组。
接下来,我们看链表,依然假设需要装载的货物是40字节。链表与数组截然不同的地方在于就像火车一样,你无需一次性申请40字节的空间,而是一节车厢一节车厢的申请,而且更棒的是这些车厢也不需要和数组一样是连续的。
从这里也能看出来,数组是静态的,创建好后就不能改动;而链表是动态的,你可以根据需求来动态的增加或者减少链表的长度。
彻底理解链表
最新推荐文章于 2024-11-06 10:51:39 发布
本文通过卡车和火车的类比,解释了数组和链表在内存表示上的区别。数组如同卡车,需要预先申请连续的内存空间,一旦空间不足,必须重新分配并复制数据。而链表则类似火车,可以动态地申请和连接内存空间,不需连续,便于增删操作。总结来说,数组固定且静态,链表灵活且动态。
摘要由CSDN通过智能技术生成