LintCode之40 用栈实现队列

来源:互联网 发布:html页面写java代码 编辑:程序博客网 时间:2024/06/05 19:18

题目来源:用栈实现队列

题目描述:
正如标题所述,你需要使用两个栈来实现队列的一些操作。

队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。

pop和top方法都应该返回第一个元素的值。

样例:
比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2

Java代码:

public class MyQueue {    private Stack<Integer> stack1;    private Stack<Integer> stack2;    boolean isStack1 = true;    public MyQueue() {       // do initialization if necessary        stack1 = new Stack<Integer>();        stack2 = new Stack<Integer>();    }    public void push(int element) {        // write your code here        stack1.push(element);    }    public int pop() {        // write your code here        while (!stack1.empty()) {            stack2.push(stack1.pop());        }        int result = stack2.pop();        while (!stack2.empty()) {            stack1.push(stack2.pop());        }        return result;    }    public int top() {        // write your code here        while (!stack1.empty()) {            stack2.push(stack1.pop());        }        int result = stack2.peek();        while (!stack2.empty()) {            stack1.push(stack2.pop());        }        return result;    }}
原创粉丝点击