0

キューを逆にする次のアプローチが正しいかどうかを知りたい: -キューのすべての要素をデキューし、インデックス 0 から a.length-1 までの配列 a に格納する -各要素配列をキューにエンキューしますが、インデックス a から開始します.length-1 から 0

より良い解決策はありますか?スタックを使用しますが、基本的には上記のソリューションのような配列を使用するのと同じです。

4

1 に答える 1

1

キューのサイズが事前にわかっている場合、配列アクセスはスタックの状態を更新するよりもわずかに高速であるため、メソッドは機能し、スタックを使用するよりもわずかに効率的です。

何らかの理由でキューサイズがわからない場合は、スタックが正常に機能します。

反転操作中にキューが変更されていないことを確認してください。要素をデキューしているときにアイテムをキューに追加できる場合、配列に対して最初に測定されたサイズが無効になる可能性があります。コードの記述方法に応じて、配列の終わりを超えてインデックスを作成するときに例外が発生するか、一部のアイテムを元のキューに残して元に戻さない可能性があります。

于 2012-09-10T19:54:08.763 に答える