/* * 题目: * 用两个队列实现栈的功能 */ import java.util.*; public class P71_TwoQueuesToStack<E> { LinkedList<E> q1=new LinkedList<E>();//入栈 LinkedList<E> q2=new LinkedList<E>();//出栈 //isEmpty() public boolean isEmpty() { return q1.isEmpty()&&q2.isEmpty(); } //push() public synchronized void push(E data) { q1.add(data); } //pop() public synchronized E pop() { if(q1.size()==1) { return q1.poll(); }else { while(q1.size()!=1) { q2.add(q1.poll()); } E tem= q1.poll(); while(!q2.isEmpty()) { q1.add(q2.poll()); } return tem; } } public static void main(String[] args) { P71_TwoQueuesToStack test = new P71_TwoQueuesToStack(); test.push('a'); test.push('b'); test.push('c'); System.out.println(test.pop()); System.out.println(test.pop()); test.push('d'); test.push('e'); System.out.println(test.pop()); System.out.println(test.pop()); System.out.println(test.pop()); } }
剑指offer:用两个队列实现一个栈(java)
最新推荐文章于 2023-03-20 13:10:57 发布