【问题标题】:Whats the difference between the two approaches? [closed]这两种方法有什么区别? [关闭]
【发布时间】:2020-02-14 12:29:37
【问题描述】:

我的作业中有这个问题,解决方案指出我们必须有两个指向索引,一个在开头,一个在最后一个元素,我们可以从最后一个元素前进到中间,分别从第一个元素到中间.但是,我的解决方案是在中间设置一个索引,最后一个索引,最后一个索引将移动到中间,而中间索引将移动到开始。但我对我的解决方案有什么问题感到困惑

问题:

需要两堆正整数:一个包含值小于或等于1000的元素,另一个包含值大于1000的元素。小值堆栈和大值堆栈中的元素总数总和在任何时候都不会超过 500,但我们无法预测每个堆栈中有多少。 (最初两者都是空的;后来堆栈可以被平均划分,或者所有元素都可以在小值堆栈中,等等。)出于效率原因,我们希望使用单个大小数组来实现两个堆栈500. 你能想办法做到这一点吗

【问题讨论】:

  • 我很难在这里看到实际的问题,你能澄清一下程序应该做什么吗?
  • 我的第一反应是“堆栈没有随机访问”,但随后分配明确表示使用数组,它没有这个限制。有可能是未指定。无论哪种方式,询问此作业的人都是你的老师,而不是互联网上的随机数。
  • 我也会从头到尾添加,需要两个索引(虽然分配很奇怪......)

标签: c++ stack queue


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2016-07-01
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多