剑指offer(5)-用两个栈实现队列

来源:互联网 发布:淘宝退货理赔标准 编辑:程序博客网 时间:2024/06/07 00:31

题目描述


用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

题目解析

入队:将元素进栈A
出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈;如果不为空,栈B直接出栈。

代码

class Solution{public:    void push(int node){        stack1.push(node);    }    int pop(){        int a;        if (stack2.empty()) {            while (!stack1.empty()) {                a = stack1.top();                stack2.push(a);                stack1.pop();            }        }        a = stack2.top();        stack2.pop();        return a;    }private:    stack<int> stack1;    stack<int> stack2;};
0 0
原创粉丝点击