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

Как использовать очередь Java для реализации стека?

Aстека является подклассомвектор классы и они представляютLIFO (Last In, First Out)объектов стека. Последний элемент, добавленный в вершину стека (In), может быть первым элементом, удаляемым из стека (Out).

Aконтейнер расширение классаколлекции интерфейс и поддерживаемыевставки иудаления Используемые операции ФIFO (First In, First Out) Мы можем использовать 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; i++) {
         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]
Рекомендуется для просмотра