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