English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Javaでキューを使ってスタックを実現する方法はどうですか?

スタック のサブクラスベクター クラスとそれが表す昇順AST先入先出(LIFO)オブジェクトのスタック。スタックのトップに追加された最後の要素(In)は、スタックから削除される最初の要素(Out)になります。

キュー クラス拡張収集 インターフェースとそれがサポートする挿入 および削除 使用される操作 先入先出(FIFO) 。以下のプログラムでは、Queueを使用してStackを実現できます。

import java.util.*;
public class StackFromQueueTest {
   Queue queue = new LinkedList(); public void push(int value) {  int queueSize = queue.size();
      queue.add(value);
      for (int i = 0; i < queueSize;++) {
         queue.add(queue.remove());
      }
   } public void pop() {  System.out.println("スタックから削除された要素は:" + queue.remove());
   }
   public static void main(String[] args) {
      StackFromQueueTest test = new StackFromQueueTest();
      test.push(10);
      test.push(20);
      test.push(30);
      test.push(40);
      System.out.println(test.queue);
      test.pop();
      System.out.println(test.queue);
   }
}

出力結果

[40, 30, 20, 10スタックから削除された要素は: 40[30, 20, 10]
おすすめ