数组和链表优缺点浅析

    众所周知,在数据结构中,会用大量的篇幅和时间放在这两种非常重要的数据类型上。本文,将围绕着数组和链表的优缺点这一中心,来展现给初学数据结构,或者对这两种数据类型理解还不充分的初学者一个比较详尽的比较和启发。笔者水平有限,不足之处,望批评指正。

    首先我们从两种数据结构在计算机里如何存储的入手,来看一看这两种数据类型的特点。首先我们来说数组,当计算机存储数组这一数据类型的时候,    计算机会在磁盘内申请一段连续的内存空间。这段内存的特点是连续,所以在存一个数组变量的时候,只需要把数组第一个A元素地址记住就可以找到数组内其他B、C、D等元素的位置。而链表恰恰相反,链表的内存地址并不连续,而是由链表的A元素记录B元素的地址,B元素指向C元素的地址,以此类推。所以要向链表内存储数据时,是需要把A元素原来指向B元素的指针改为指向D元素(要存入链表的元素)的地址,再由D元素重新指向B元素。弄清楚了链表和数组在计算机中存储的方式和特点就不难理解其优缺点。

    当我们想做增删改操作时,我们需要改变数组或链表的结构。以下分别来说这两种情况。

    当数据类型是数组时,我们需要做怎样的操作呢?我们需要在取出数组后,将对元素进行(比如增操作)一些操作,这时我们需要拿到数组的第一个元素的地址,然后向下一个一个查找,直到找到需要增加E元素的a位置,这时a位置后的所有元素地址都需要向后增加以便给E元素留出足够的内存空间。如此一来,数组中a位置后的所有元素的内存地址都发生了改变。增大了内存开销,所以速度会比较慢。

    当数据类型是链表的时候,情况大不相同,具体操作过程在第一段已经说完,这里不再赘述。

    但当我们要进行查询操作时,面对数组我们只需要拿到数组的首地址,接着在连续的地址上寻找即可。但链表就需要从一个地址跳到另一个地址直到找到需要查询的元素为止。

    现在我们来总结一下,数组的查询速度比链表要快,但面对增删改操作时链表的数据结构特点就显现出来,在这一方面要远超数组。通过上面的剖析,相信大家对数组和链表有了一个比较清晰的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值