首页 > 其他分享 >用队列实现栈

用队列实现栈

时间:2024-01-21 18:35:21浏览次数:19  
标签:q1 q2 obj 队列 queue 实现 int MyStack

 

 

/*
 * @lc app=leetcode.cn id=225 lang=cpp
 *
 * [225] 用队列实现栈
 */

// @lc code=start
class MyStack
{
public:
    MyStack()
    {
        q1 = new queue<int>;
        q2 = new queue<int>;
    }
    ~MyStack()
    {
        delete q1;
        delete q2;
        q1 = nullptr;
        q2 = nullptr;
    }
    void push(int x)
    {
        q1->push(x);
        while (!q2->empty())
        {
            q1->push(q2->front());
            q2->pop();
        }
        queue<int> *p = q1;
        q1 = q2;
        q2 = p;
    }

    int pop()
    {
        int val = q2->front();
        q2->pop();
        return val;
    }

    int top()
    {
        return q2->front();
    }

    bool empty()
    {
        return q2->empty();
    }

private:
    queue<int> *q1;
    queue<int> *q2;
};

/**
 * Your MyStack object will be instantiated and called as such:
 * MyStack* obj = new MyStack();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->top();
 * bool param_4 = obj->empty();
 */
// @lc code=end

 

标签:q1,q2,obj,队列,queue,实现,int,MyStack
From: https://www.cnblogs.com/angdh/p/17978123

相关文章

  • 基于SSM的生鲜配送系统设计及实现
    互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对生鲜配送信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用生鲜配送系统可以有效管理,使信息管理能够更加......
  • 基于html5的演唱会购票系统的设计与实现
    随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了基于html5的演唱会购票系统的设计与实现的开发全过程。通过分析企业对于基于html5的演唱会购票系统的设计与实现的需求,创建了一个计算机管理基于html5的演唱会购票系统的设计与实现的......
  • 用栈实现队列
      /**@lcapp=leetcode.cnid=232lang=cpp**[232]用栈实现队列*///@lccode=startclassMyQueue{public:MyQueue(){}voidpush(intx){s1.push(x);}intpop(){if(s2.empty()){......
  • uniapp+django登录页面实现
    前后端联动概述以一个简单的登录功能为例说明,uni-app的前后端交互项目地址:效果图前端页面开发项目地址:后端页面开发项目地址:其他参考资料1、Django项目和uni-app项目的创建及项目文件讲解https://blog.csdn.net/qq_55002406/article/details/1287887882、如何将前......
  • 中断机制之通过interrupt实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了interrupt实现线程中断停止用isInterrupted判断当前线程是否被中断,用interrupt()设置线......
  • 中断机制之通过AtomicBoolean实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了AtomicBoolean实现线程中断演示通过修改共享变量的方式来达到通知的目的从而使目的线程......
  • 中断机制之通过volatile实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了volatile实现线程中断演示通过修改共享变量的方式来达到通知的目的从而使目的线程中断......
  • Java实现Excel导入和导出
    目录目录前言1.功能测试1.1测试准备1.2数据导入1.2.1导入解析为JSON1.2.2导入解析为对象(基础)1.2.3 导入解析为对象(字段自动映射)1.2.4导入解析为对象(获取行号)1.2.5导入解析为对象(获取原始数据)1.2.6 导入解析为对象(获取错误提示)1.2.7导入解析为对象(限制字段......
  • 在 SpringBoot 项目中使用 MDC 实现日志 traceId 的统一
    前言在项目中,对于每一次请求,我们都需要一个traceId将整个请求链路串联起来,这样就会很方便我们根据日志排查问题。但是如果每次打印日志都需要手动传递traceId参数,也会很麻烦,MDC就是为了解决这个场景而使用的。注:这里我们使用slf4j+logbacklogback配置logback.xml......
  • P1886 滑动窗口 /【模板】单调队列
    P1886滑动窗口/【模板】单调队列https://www.luogu.com.cn/problem/P1886 思路https://zhuanlan.zhihu.com/p/346354943 Codehttps://www.luogu.com.cn/record/143623041LLn,k;LLa[1000005];deque<LL>maxd,mind;intmain(){cin>>n>>k;......