トピック: 2つのスタックを持つキューの実装
2つのスタックを持つキューを実装します。キューの宣言は以下のとおりです。キューの末尾にあるノードの挿入とキューの先頭にあるノードの削除を完了するために、それぞれappendTail関数とdeleteHead関数を実装してください。
問題解決のためのアイデア
まず第一に、スタックを理解する:先入れ先出し、キュー:先入れ先出し特性;できるように、キューを介してすべての要素に要素に、スタック1要素のスタックに、キューが時間の要素から出てくる必要があるときに、スタック1の要素になりますスタック2に、その後、スタック2ポップアップを介して、2つのスタックを介して要素の先入れ先出し特性を達成できるように。
ソリューションコード
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
public void appendTail(int node) {
stack1.push(node);
}
public int deleteHead() {
if (stack2.isEmpty()) {
while (stack1.empty() != true) {
stack2.push(stack1.pop());
}
}
if (stack2.empty() == true) {
return -1;
}
return stack2.pop();
}
追記
ソード・トゥ・オフター』より抜粋




