See More

import java.util.Stack; /** * Implement a queue with two stacks. */ public class QueueByStack { private Stack head; private Stack tail; public QueueByStack() { head = new Stack(); tail = new Stack(); } public void enQueue(T v) { head.push(v); } public T deQueue() { if (tail.size() == 0) { while (head.size() > 0) { tail.push(head.pop()); } } if (tail.size() == 0) throw new RuntimeException("queue is empty."); return tail.pop(); } public static void main(String[] args) { QueueByStack queue = new QueueByStack(); queue.enQueue(2); queue.enQueue(5); queue.enQueue(1); System.out.println(queue.deQueue()); System.out.println(queue.deQueue()); System.out.println(queue.deQueue()); } }