用两个队列实现一个栈 JAVA实现
来源:互联网 发布:如何申请淘宝网店步骤 编辑:程序博客网 时间:2024/05/17 21:51
package AlgorithmTest;import java.util.ArrayDeque;import java.util.Deque;/** * Created by dell on 2015/10/5. */public class TwoQueueImplementStackTest { public static void main(String[] args) { MyStack myStack= new MyStack(); myStack.push(1); myStack.push(2); myStack.push(3); Integer i = null; while ( (i = myStack.pop()) != null){ System.out.println(i); } }}class MyStack{ private Deque<Integer> deque1; private Deque<Integer> deque2; public MyStack(){ deque1 = new ArrayDeque<>(); deque2 = new ArrayDeque<>(); } public void push(Integer i){ if (deque2.isEmpty()){ deque1.offer(i); }else{ deque2.offer(i); } } public Integer pop(){ if (deque1.isEmpty() && !deque2.isEmpty()){ return swapTwoDeque(deque1, deque2); }else if(!deque1.isEmpty() && deque2.isEmpty()){ return swapTwoDeque(deque2, deque1); } return null; } private static Integer swapTwoDeque(Deque<Integer> deque1, Deque<Integer> deque2){ while (deque2.size() != 1){ deque1.offer(deque2.poll()); } return deque2.poll(); }}
0 0