私はこのアルゴリズムに従うJavaで2つのスタックを使用してキューを実装しました:
enQueue(x)
xをstack1にプッシュしますdeQueue()
1)両方のスタックが空の場合、エラーが発生します。
2)stack1が空でないときにstack2が空の場合は、stack1からstack2にすべてをプッシュします。
3)stack2から要素をポップして返します。
ここでの問題は、最初のdeQueue()操作が非常に遅いことです(すべてをに転送するためstack2)。アルゴリズムをなんとかして変更して、deQueue常にO(1)になるようにすることはできますか?他に選択肢はありますか?