【问题标题】:How to reverse a queue如何反转队列
【发布时间】:2012-09-11 11:22:04
【问题描述】:

我想知道以下方法是否正确来反转队列: - 将队列的所有元素出列并将它们存储在从索引 0 到 a.length-1 的数组 a 中 - 将每个元素数组排入队列,但从索引 a.length-1 到 0 开始

有没有更好的解决方案?我们 cud 使用堆栈,但它与使用像我上面的解决方案这样的数组基本相同。

【问题讨论】:

  • 7 个问题,0 个接受的答案并不是让人们回答您的第 8 个问题的好方法。仅供参考 - 您是否尝试过您的解决方案?你发现问题了吗?

标签: queue reverse


【解决方案1】:

如果您事先知道队列大小,那么您的方法将有效,并且比使用堆栈稍微高效一些,因为数组访问比更新堆栈状态稍快。

如果您出于某种原因不知道队列大小,则堆栈可以正常工作。

确保您的队列在撤消操作期间不会发生变化。如果在使元素出队时可以将项目添加到队列中,则最初为数组测量的大小可能不再有效。根据您编写代码的方式,这可能会在您索引超出数组末尾时导致异常,或者导致您将某些项目留在原始队列中而不是反转它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多