用两个栈实现队列

来源:互联网 发布:淘宝大学一飞 编辑:程序博客网 时间:2024/06/08 05:18
问题描述:


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


代码如下:

class Solution{public:    /*     *入队:将元素进栈1     *出队:判断栈2是否为空,如果为空,则将栈1中的所有元素pop,并push到栈2中,此时栈2依次出栈就可以完成出队操作     */    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
原创粉丝点击