在将数据存储到内存时,计算机提供存储空间,计算机给你一个存储地址。需要存储多项数据时,有俩种基本方式——数组和链表。但它们并非都适用于多有情形,因此直到他们的差别很重要。接下来介绍介绍数组和链表以及它们的优缺点。
链表
链表中的元素可以存储在内存中的任何地方。
链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。这就犹如寻宝游戏。你前往第一个地址,哪里有一张纸条写着“下一个元素的地址是123”,因此你前往地址123,那里又有一张纸条写着“下一个元素的地址为456”,以此类推。在链表中添加元素很容易:只需将其放入内存中,并将其地址存储到钱一个元素中。
所以链表的优势是插入元素方面
数组
假设有一个数组,它包含5个元素,起始地址为00,那么元素#5的地址是多少呢?只需执行简单的数学运算就知道:04。
数组的元素带编号,编号是从0而不是1开始。
例子
你要在一列待办事项中插入一件新的事项
需要在中间插入元素时,数组和链表哪个更好呢?使用链表时,插入元素很简单,只需要修改它最前面的那个元素指向的地址。
而使用数组时,则必须将后面的元素都向后移。
如果没有足够的空间,可能还得将整个数组复制到其他地方!因此,当需要在中间插入元素时,链表是更好的选择。
总结
数组和链表哪个用的更多呢?显然要看情况,但数组用得很多,因为它支持随机访问。有俩种访问方式:随机访问和顺序访问。顺序访问意味着从第一个元素开始逐个读取元素。链表只能顺序访问:要读取链表的第十个元素,得先读取前九个元素,并沿链接找到第十个元素。随机访问意味着可直接跳到第十个元素。我们经常说数组的读取速度更快,这是因为它们支持随机访问。
希望本篇文章对你有帮助