算法-用两个栈实现队列详解编程语言

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

    [解析]
    基础
        队列:先进先出
        栈:后进先出
    两个栈模拟一个队列: 
        一个负责 push,一个负责 pop
*/


class Solution{
public:
    void push(int node) {
        stackPush.push(node);
    }

    int pop() {
        if(stackPop.empty()){
            while(!stackPush.empty()){
                stackPop.push(stackPush.top());
                stackPush.pop();
            }
        }

        if(stackPop.empty()){
            return -1;
        }else{
            int val = stackPop.top();
            stackPop.pop();
            return val;
        }
    }

private:
    stack<int> stackPush;
    stack<int> stackPop;
};

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/15285.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论