两种方法有什么区别?

时间:2019-10-17 14:34:27

标签: c++ stack queue

我的作业中有这个问题,解决方案指出,我们必须有两个指向索引,一个在开头,一个在最后一个元素,我们可以从最后一个元素到中间,从第一个元素到中间。但是,我的解决方案是在中间有一个索引,最后有另一个索引,最后一个索引将一直移动到中间,而中间索引将移动直到到达起始位置。但是我对解决方案的问题感到困惑

问题:

  

需要两个正整数堆栈:一个堆栈包含值小于或等于1000的元素,另一个堆栈包含值大于1000的元素。小值堆栈和大值堆栈中的元素总数组合在任何时候都不会超过500,但是我们无法预测每个堆栈中会有多少。 (最初两个都为空;稍后可以均匀地划分堆栈,或者所有元素都可以位于小值堆栈中,依此类推。)出于效率方面的考虑,我们希望使用单个大小数组来实现两个堆栈500.您能想到一种方法吗?

1 个答案:

答案 0 :(得分:0)

将2001年的10(小于1000)和400的数字取为2400(大于1000)的数字,并尝试将它们放在两个堆栈中。您将看到两端都有指针的解决方案将起作用。但是中间只有一个指针的解决方案不起作用,其中一个堆栈太小或较小的值将被覆盖。