Java のスタックを使用してキューを実装する方法

Java のスタックを使用したキューの実装は、2 つのスタックを使用して実現できます。1 つのスタックはキューの要素を格納するために使用し、もう 1 つのスタックは操作を支援するために使用します。

具体的には以下の手順で行います。

  1. よろしくお願いいたします
  2. ネイティブの日本語で言い換えてください、オプションは1つだけ必要です
  3. キューに追加
  4. このようなやり方で、
  5. dequeue
  6. そいつを手元に置いといてくれ
  7. 本来なら、私はステーキを食べるつもりでした。
  8. 日本語で流暢に言い換えてください。1つのオプションのみが必要です:
  9. それはあたりまえだよ
  10. ネイティブ翻訳が必要なのですか?
  11. 本質的に、このシステムは「よく考えられた」システムではありません。
  12. ちらっとのぞく
  13. ネイティブの日本語では、文章を言い換えることができます。
  14. あなたはよく働いたね
  15. 日本に長く住んでいて、日本の文化にも慣れています。
  16. 一方で
  17. すぐにお金が必要になったから
  18. 今後改善される予定です
  19. 空っぽ
  20. 部長は、契約の最終確認を社内で承認する必要があります。
  21. ネイティブな日本語で言い換えると、

以下は、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のスタックを使用してキューを実現する方法だ。

bannerAds