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

232. 用栈实现队列

时间:2024-10-22 18:58:26浏览次数:6  
标签:队列 s2 s1 pop int 用栈 232 top empty

class MyQueue {
public:
    MyQueue()
    {
    }
    
    void push(int x) {
        s1.push(x);
    }
    
    int pop() {
        int ret;
        if(!empty()){
            if(!s2.empty()){
                ret = s2.top();
                s2.pop();
                return ret;
            }else{
                while(!s1.empty()){
                    int temp = s1.top();
                    s1.pop();
                    s2.push(temp);
                }
                ret = s2.top();
                s2.pop();
                return ret;
            } 
        }
        return -1;  
    }
    
    int peek() {
        if(s2.empty()){
            while(!s1.empty()){
                int temp = s1.top();
                s1.pop();
                s2.push(temp);
            }
        }
        return s2.top();
    }
    
    bool empty() {
        return s1.empty() && s2.empty();
    }
private:
    stack<int> s1;
    stack<int> s2;
};

标签:队列,s2,s1,pop,int,用栈,232,top,empty
From: https://www.cnblogs.com/llllmz/p/18493543

相关文章

  • 一文搞定栈与队列
    栈与队列基础入门栈常用操作栈的实现基于链表实现基于数组实现 队列常用操作队列的实现基于链表实现基于数组实现 双向队列常用操作重点知识栈与队列的区别怎么用两个队列去实现栈 两个栈实现一个队列相关题解leetcode20.有效的括号法一:栈leetcode155.......
  • 20222321 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    一.实验内容(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)(2)使用socat获取主机操作Shell,任务计划启动(3)使用MSFmeterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(4)使用MSFmeterpreter(或其他软件)生成获取目标主机音频、摄......
  • 2024.10.22 教案 22320305黄晶
    守株待兔》小学课文教案一、教学目标知识目标:学生能够理解《守株待兔》的故事内容,认识并会写本课中的生字词,如“守”、“株”、“待”、“兔”等,理解“偶然”与“必然”的区别。能力目标:培养学生通过阅读理解寓意的能力,提升口头表达能力和逻辑思维能力,能够复述故事并阐述其中蕴......
  • 多线程(八):阻塞队列 & 生产者消费者模型
    目录1.阻塞队列 2.生产者消费者模型2.1场景举例2.2重要优势2.2.1解耦合 2.2.2削峰填谷2.3付出的代价3.BlockingQueue4.模拟实现阻塞队列4.1wait的注意事项4.2代码实现 1.阻塞队列在数据结构中,我们学习了简单的普通队列,也学习了较为复杂一些......
  • 优先级队列(priority_queue)
     priority_queue简介   优先级队列的底层结构其实就是堆,就是我们在学习二叉树的时候学习的堆。它是一种逻辑结构,底层还是vector,我们把它想象成一个堆结构。    我们在学习堆的时候,知道了它的父亲和左右孩子的关系。它如果存在孩子,则一定存在这一种关系,leftchi......
  • Java消息队列入门详解
    什么是消息队列?消息队列的产生主要是为了解决系统间的异步解耦与确保最终一致性。在实际应用场景中,往往存在一些主流程操作和辅助流程操作,其中主流程需要快速响应用户请求,而辅助流程可能涉及复杂的处理逻辑或者依赖于外部服务。通过将这些辅助流程的消息放入消息队列,使得它们可......
  • 20222320 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    目录目录目录0.认识工具Veil1.实验目标2.实验内容3.实验过程(1)使用msf编码器,使用msfvenom生成如jar之类的其他文件(2)使用veil加壳工具加壳(3)使用C+shellcode编程(4)通过组合应用各种技术实现恶意代码免杀(5)用另一电脑实测,在杀软开启的情况下,可运行并回连成功4.问题及解决方案5.学习感......
  • 数据结构——队列
    目录1>>导言2>>队列的结构3>>初始化4>>打印5>>入列6>>出列6.1>>判断是否为空7>>取队头和队尾数据and统计个数8>>队列销毁9>>三个文件代码queue.hqueue.ctest.c10>>总结1>>导言    在把栈学习完后,步入新的章节——队列,队列是一种特殊的线性表,队列是......
  • Java消息队列详解
    消息队列的作用及原理消息队列产生主要是为了解决系统间的异步解耦与确保数据最终一致性问题。通过将主流程与辅助流程分离,使得辅助任务可以并行处理,不仅提高了系统的响应速度,还增强了其可扩展性和稳定性。此外,消息队列机制保证了每条消息至少被消费一次,从而确保了业务逻辑的......
  • Java语言快速实现简单MQ消息队列服务
    目录MQ基础回顾主要角色自定义协议流程顺序项目构建流程具体使用流程代码演示消息处理中心Broker消息处理中心服务BrokerServer客户端MqClient测试MQ小结 MQ基础回顾在上一篇消息通讯之关于消息队列MQ必须了解的相关概念中,我们尽可能地详细的了解......