zoukankan      html  css  js  c++  java
  • 用两个栈实现队列

    题目描述

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

    思路

    利用两个栈来实现元素的反转,stack1为接收入栈元素,stack2为stack1的反转,反转后stack2的顶部元素变为了stack1的底部,队列的先入先出可以从stack1完成push,pop操作则是对stack2进行操作。

    class Solution
    {
    public:
        void push(int node) {
            while(!stack2.empty()){         
                int val = stack2.top();
                stack1.push(val);
                stack2.pop();
            }
            stack1.push(node);
        }
    
        int pop() {
            while(!stack1.empty()){
                int val = stack1.top();
                stack2.push(val);
                stack1.pop();
            }        
            int top_val = stack2.top();
            stack2.pop();
            return top_val;
        }
    
    private:
        stack<int> stack1;
        stack<int> stack2;
    };
  • 相关阅读:
    第三次冲刺
    第二次冲刺
    第一次冲刺
    团队学习
    git and github
    还不够格的程序员
    CF1602F. Difficult Mountain
    线性基
    欧拉回路学习笔记
    莫比乌斯反演-学习笔记
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10266657.html
Copyright © 2011-2022 走看看