代码随想录算法【Day10】

今日只做一题,剩下的题后面补

232.用栈实现队列

class MyQueue {
public:
    stack<int> stIn;
    stack<int> stOut;
    /** Initialize your data structure here. */
    MyQueue() {

    }
    /** Push element x to the back of queue. */
    void push(int x) {
        stIn.push(x);
    }

    /** Removes the element from in front of queue and returns that element. */
    int pop() {
        // 只有当stOut为空的时候,再从stIn里导入数据(导入stIn全部数据)
        if (stOut.empty()) {
            // 从stIn导入数据直到stIn为空
            while(!stIn.empty()) {
                stOut.push(stIn.top());
                stIn.pop();
            }
        }
        int result = stOut.top();
        stOut.pop();
        return result;
    }

    /** Get the front element. */
    int peek() {
        int res = this->pop(); // 直接使用已有的pop函数
        stOut.push(res); // 因为pop函数弹出了元素res,所以再添加回去
        return res;
    }

    /** Returns whether the queue is empty. */
    bool empty() {
        return stIn.empty() && stOut.empty();
    }
};
相关推荐
回音谷5 分钟前
【算法】克里金(Kriging)插值原理及Python应用
python·算法·插值
onejason6 分钟前
如何利用PHP爬虫批量获取商品信息
前端·php
一弓虽14 分钟前
java基础学习——java泛型
java·学习
晨辰星6628 分钟前
Vue2中使用Echarts
前端·javascript·echarts
CodeToGym34 分钟前
三分钟在你的react项目中引入tailwindcss
前端·react.js·前端框架·tailwindcss
时间sk41 分钟前
CSS——10.类选择器
前端·css
我真不会起名字啊43 分钟前
QtJson数据格式处理详解
java·前端·javascript
硕风和炜1 小时前
【LeetCode: 112. 路径总和 + 二叉树 + 递归】
java·算法·leetcode·面试·二叉树·递归
【D'accumulation】1 小时前
基于 Node.js 的 ORM(对象关系映射)工具——Sequelize介绍与使用,并举案例分析
前端·javascript·学习·node.js·express
一个处女座的程序猿O(∩_∩)O2 小时前
vue3 如何封装aixos
前端·javascript·vue.js