如何反转队列

时间:2012-09-10 19:48:47

标签: queue reverse

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

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

1 个答案:

答案 0 :(得分:1)

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

如果您因任何原因不知道队列大小,堆栈将正常工作。

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