剑指offer.用两个栈模拟实现队列(C++)(简单易懂+适合小白)

题目描述:

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

代码实现:

思路:一个栈用来push,另一个栈用来pop

class Solution
{
public:
    void push(int node) {
        stack1.push(node);//stack1只用来入栈
    }

    int pop() {//stack2用来出栈
        if(stack2.empty())//如果stack2为空,需要将stack1中所有数据出栈并压入stack2中
        {
            while(!stack1.empty())
            {
                stack2.push(stack1.top());
                stack1.pop();
            } 
        }
        int num = stack2.top();//如果stack2不为空,直接进行出栈即可
        stack2.pop();
        return num;
       
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};

 

 

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读