0

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

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

4

1 回答 1

1

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

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

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

于 2012-09-10T19:54:08.763 回答