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(); } }
用两个队列实现一个栈 JAVA实现
最新推荐文章于 2024-07-01 16:00:00 发布