232.implement-queue-using-stacks 用栈实现队列

stOut为空时,将stIn中所有元素pushstOut

#include <stack>
using std::stack;
class MyQueue {
  public:
    stack<int> stIn;
    stack<int> stOut;
    MyQueue() {
    }

    void push(int x) {
        stIn.push(x);
    }

    int pop() {
        if (stOut.empty()) {
            while (!stIn.empty()) {
                stOut.push(stIn.top());
                stIn.pop();
            }
        }
        int result = stOut.top();
        stOut.pop();
        return result;
    }

    int peek() {
        int res = this->pop();
        stOut.push(res);
        return res;
    }

    bool empty() {
        return stIn.empty() && stOut.empty();
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.wtld.cn/a/73.html

如若内容造成侵权/违法违规/事实不符,请联系方塘网进行投诉反馈,一经查实,立即删除!

相关文章

多个装饰器,执行顺序,以及自己编写响应以及请求

1.背景背景:我为啥单独写一片这个文章呢?是因为遇到好多次了我必须搞懂它!文章分三部分1.1不带参数的多个装饰器1.2带参数的装饰器1.3带参数的实例,直接拿来用2不带参数的多个装饰器‘# 编写装饰器,作为响应以及请求的校验def request_wrapper(fun):print(f"request_wr…

2022杭电多校第八场1、7、5

1001 Theramore 观察以下两种情况:以0为例,上图就是说,只要有两个连续的0,我们就可以一直把它们往前移动直到移动到首位。同理只要有两个连续的1我们就可以把它们移动到尾部。 所以可以开一个栈,顺序将字符入栈,一旦遇到连续的0或者1,就把它们删去,在首尾打下标记。 co…

Bert bert-base-uncased 模型加载

1、下载模型相关文件到本地路径 https://huggingface.co/bert-base-uncased/tree/main2、修改模型加载,注释为修改前

A层省选4

场均一题放弃 A. 我 我切题了 发现图上有环可以不停的转,让空位到我们需要的地方去,而环的具体形态并不重要,我们只需要知道环的大小(\(size\))和环内元素个数(\(cnt\))即可 所以使用\(tarjan\)缩点,然后转化为一个\(DAG\)上的问题 发现环的大小等于元素个数时,我们必须先…

fa

\[ax+by\equiv X_i \]$$\texttt{--END--}$$我的博客: $\texttt{1Liu}$ 本文链接: https://www.cnblogs.com/OLiuO/p/16589553.html 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!