一篇文章学会分别数组和链表

在将数据存储到内存时,计算机提供存储空间,计算机给你一个存储地址。需要存储多项数据时,有俩种基本方式——数组和链表。但它们并非都适用于多有情形,因此直到他们的差别很重要。接下来介绍介绍数组和链表以及它们的优缺点。

链表

链表中的元素可以存储在内存中的任何地方。

 

链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。这就犹如寻宝游戏。你前往第一个地址,哪里有一张纸条写着“下一个元素的地址是123”,因此你前往地址123,那里又有一张纸条写着“下一个元素的地址为456”,以此类推。在链表中添加元素很容易:只需将其放入内存中,并将其地址存储到钱一个元素中。

所以链表的优势是插入元素方面

数组

假设有一个数组,它包含5个元素,起始地址为00,那么元素#5的地址是多少呢?只需执行简单的数学运算就知道:04。

 数组的元素带编号,编号是从0而不是1开始。

例子

你要在一列待办事项中插入一件新的事项

 需要在中间插入元素时,数组和链表哪个更好呢?使用链表时,插入元素很简单,只需要修改它最前面的那个元素指向的地址。

而使用数组时,则必须将后面的元素都向后移。

如果没有足够的空间,可能还得将整个数组复制到其他地方!因此,当需要在中间插入元素时,链表是更好的选择。

总结

数组和链表哪个用的更多呢?显然要看情况,但数组用得很多,因为它支持随机访问。有俩种访问方式:随机访问和顺序访问。顺序访问意味着从第一个元素开始逐个读取元素。链表只能顺序访问:要读取链表的第十个元素,得先读取前九个元素,并沿链接找到第十个元素。随机访问意味着可直接跳到第十个元素。我们经常说数组的读取速度更快,这是因为它们支持随机访问。

希望本篇文章对你有帮助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值