Java のスタックを使用してキューを実装する方法
Java のスタックを使用したキューの実装は、2 つのスタックを使用して実現できます。1 つのスタックはキューの要素を格納するために使用し、もう 1 つのスタックは操作を支援するために使用します。
具体的には以下の手順で行います。
- よろしくお願いいたします
- ネイティブの日本語で言い換えてください、オプションは1つだけ必要です
- キューに追加
- このようなやり方で、
- dequeue
- そいつを手元に置いといてくれ
- 本来なら、私はステーキを食べるつもりでした。
- 日本語で流暢に言い換えてください。1つのオプションのみが必要です:
- それはあたりまえだよ
- ネイティブ翻訳が必要なのですか?
- 本質的に、このシステムは「よく考えられた」システムではありません。
- ちらっとのぞく
- ネイティブの日本語では、文章を言い換えることができます。
- あなたはよく働いたね
- 日本に長く住んでいて、日本の文化にも慣れています。
- 一方で
- すぐにお金が必要になったから
- 今後改善される予定です
- 空っぽ
- 部長は、契約の最終確認を社内で承認する必要があります。
- ネイティブな日本語で言い換えると、
以下は、Java コードによる実装です。
import java.util.Stack;
public class QueueWithStacks {
private Stack<Integer> stack1;
private Stack<Integer> stack2;
public QueueWithStacks() {
stack1 = new Stack<>();
stack2 = new Stack<>();
}
public void enqueue(int element) {
stack1.push(element);
}
public int dequeue() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
public int peek() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.peek();
}
public boolean isEmpty() {
return stack1.isEmpty() && stack2.isEmpty();
}
}
ご使用例:
public class Main {
public static void main(String[] args) {
QueueWithStacks queue = new QueueWithStacks();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println(queue.dequeue()); // 输出: 1
System.out.println(queue.peek()); // 输出: 2
System.out.println(queue.isEmpty()); // 输出: false
}
}
以上がJavaのスタックを使用してキューを実現する方法だ。