用两个队列实现一个栈 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
原创粉丝点击