顺序表与链表的综合比较

      1.基于空间的考虑

      顺序表的存储空间是静态分配的,在程序执行之前必须声明它的规模。若线性表的长度变化较大,则存储规模难以预先确定,过大会造成空间浪费,过小可能会导致溢出。动态链表的存储空间是动态分配的,只要内存有空闲,就不会导致溢出。因此,当线性表的长度变化较大,难以估计其存储规模时,采用动态链表作为存储结构比较好。
      存储密度是指结点数据本身所占的存储量和整个结点结构所占的存储量之比。一般来说,存储密度越大,存储空间的利用率就越高。显然顺序表的存储密度为1,而链表的存储密度小于1。例如,单链表中各结点的数据均为整数,指针所占空间和整型量相同,则单链表的存储密度为0.5。因此若不考虑顺序表中的备用结点空间,则顺序表的空间利用率是1。单链表的空间利用率是0.5。因此,当线性表的长度变化不大,易于事先确定其大小时,为了节约存储空间,采用顺序表作为存储结构比较好。

      2.基于时间的考虑

      顺序表是一种随机存储结构,对表中任一结点都可以在O(1)时间内直接存取,而链表中的结点则需要从头指针开始顺序遍历才能取得。因此,若线性表的操作主要是进行查找,很少做插入或删除时,采用顺序表为宜。
      在链表的任意位置上进行插入删除,都只需要修改指针。而在顺序表中,平均要移动一半的结点【(0+1+2+3+…+n)/(n+1)=n/2】。因此,对于频繁进行插入删除操作的线性表,采用链表为宜。若表的插入删除操作主要发生在表的首尾两端,则采用带尾指针的单循环链表。

      3.基于语言的考虑

      在没有提供指针类型的高级语言环境中,若要采用链表结构,则可以使用游标来实现静态链表。虽然静态链表在存储分配上有不足之处,但它和动态链表一样,具有插入删除方便的特点。

      线性表链式存储方式的比较线性表链表存储方式比较
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃鱼的ねこ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值