首页 > 代码库 > 用两个stack设计一个队列
用两个stack设计一个队列
思路:用两个栈,一个用于接收(in),一个用于输出(out),输出前如果out为空需要将in中的数据导入out。
import java.util.Stack;//用两个stack设计一个队列 p142public class MyQueue<T> { Stack<T> in; Stack<T> out; public MyQueue() { in = new Stack<T>(); out = new Stack<T>(); } public void enqueue(T a) { in.push(a); } public T dequeue() { shiftItems(); return out.pop(); } public T peek() { shiftItems(); return out.peek(); } private void shiftItems() { if (!out.isEmpty()) return; while (!in.isEmpty()) { out.push(in.pop()); } } public static void main(String[] args) { MyQueue<Integer> queue = new MyQueue<Integer>(); queue.enqueue(1); queue.enqueue(2); queue.enqueue(3); System.out.println(queue.dequeue()); queue.enqueue(4); System.out.println(queue.dequeue()); System.out.println(queue.dequeue()); System.out.println(queue.dequeue()); }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。