質問: 2 つのスタックを使用してキューを実装する方法、つまり、queue-appendTail (挿入) と deleteHead (削除) を実装する 2 つのメソッドを使用する方法。
分析:中心となるアイデアは、1 つのスタックが順方向に保存し、もう 1 つのスタックが逆方向に保存するということです。順方向ストレージ スタックは挿入に使用され、逆方向ストレージ スタックは削除に使用されます。
実装された Java コードは次のとおりです。
次のようにコードをコピーします。
java.util.Stackをインポートします。
パブリック クラス QueneWithTwoStacks<E> {
プライベート Stack<E> stack1;
プライベート Stack<E> スタック 2;
public void appendTail(E e) {
stack1.push(e);
}
public E deleteHead() が例外をスローする {
if (stack2.size() <= 0) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
if (stack2.size() == 0) {
throw new Exception("キューが空です!");
}
戻りstack2.pop();
}
}