发布网友 发布时间:2022-05-05 09:22
共3个回答
热心网友 时间:2022-06-27 06:25
不正确, 因为前面我们已经提到过,通过继承Vector,很大一部分功能的实现就由Vector涵盖了。Vector的详细实现我们会在后面分析。它实现了很多的辅助方法,给Stack的实现带来很大的便利。现在,我们按照自己的思路来分析每个方法的具体步骤,再和具体实现代码对比。热心网友 时间:2022-06-27 06:26
这只是一个伪代码,就算法思想考虑都是正确的。追答比如开新的栈空间的时候,又额外开辟了其它变量x的空间,这时候栈内元素的地址就不连续了,p--后就可以跑到x的地址上。
不过理解成伪代码我们可以认为它的p--就是到下一个元素的地址。
如果用容器vector里的stack就没有这个问题了。
看见了楼上的回复。
通常是用第一种方式的。因为栈通常都是指针操作,数组操作局限性太大学到后面就几乎不用了。动态链表实现时通常不会额外记录栈顶或栈底元素的地址。比较之下前者更好,后者更好写
热心网友 时间:2022-06-27 06:26
感觉都正确,这两个没有什么区别啊。追问第二个算法是我自己写的,网上找打的居然都是第一个算法.....为什么?最优算法是?追答这两个没有什么本质的区别,
就像一般的一维数组,告诉两个下标,让计算两者之间的元素个数,
方法1,就是直接拿下标相加减
方法2,就是让大的下标递减直到小的下标。
原理就是这个原理,这两个之间那个最好,我说不清楚,因为第二个里面牵涉到一系列的转换,这种转换我们是看不到的,当然第一个里面也有。