2.2顺序表

本文讨论了王道书籍关于顺序表插入操作中的逻辑矛盾,并比较了不同教材对表满处理方式的差异,重点在于《数据结构》(严蔚敏版)与《黑书》中的不同实现策略。通过实例代码,揭示了在表满时空间扩展的处理方式对时间和复杂度的影响。
摘要由CSDN通过智能技术生成

脑图

在这里插入图片描述

王道书籍的一些自己的思考

  • P15的插入操作中,i的取值范围为1到L.length+1,但是在下面给出的示例代码中,在第L.length+1的位置插入时,直接返回了false(意味着不能执行插入操作,那么取值范围就不应该包含L.length+1),这里前后矛盾。在严蔚敏版《数据结构》中,i的范围是1到L.length+1,但是在第L.length+1的位置插入时,是会开辟新的存储空间,并且把所有的数据全部转移过去。在黑书《数据结构、算法与应用 C++语言描述》中的判满后的做法是直接将长度扩大两倍(这个也是C++的ArrayList的底层实现方法)。我个人认为的正确做法应该是严蔚敏版《数据结构》的做法。图片从上往下依次为王道、严蔚敏版《数据结构》、黑书
    王道书籍

严蔚敏版数据结构
在这里插入图片描述

  • P17第06题中第二个条目,在最后一个节点后插入一个新的节点,如果最后一个节点刚好占满了整个顺序表,那么再执行插入操作的时候就需要开辟一大段新的空间,然后将所有之前的数据全部复制过去,此时的时间复杂度为O(n),与答案给的不符。不过按照王道之前书籍给的逻辑,在表满的清空下执行插入是直接返回false的,这样看起来应该是上一点的连带错误了。

附带部分代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天地神仙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值