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

用栈实现队列

时间:2022-11-01 16:56:23浏览次数:37  
标签:stIn int 队列 pop 实现 用栈 stOut MyQueue empty

class MyQueue {
public:
    stack<int>stIn;
    stack<int>stOut;
    MyQueue() {

    }
    
    void push(int x) {
        stIn.push(x);
    }
    
    // 从队列开头移除并返回元素
    int pop() {
        if(stOut.empty())   // 当stOut为空时,再从StIn中导入数据(导入stIn中的所有数据)
        {
            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();
    }
};

/**
 * Your MyQueue object will be instantiated and called as such:
 * MyQueue* obj = new MyQueue();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->peek();
 * bool param_4 = obj->empty();
 */

标签:stIn,int,队列,pop,实现,用栈,stOut,MyQueue,empty
From: https://www.cnblogs.com/dh2021/p/16848293.html

相关文章

  • 使用vue-handsontable实现web execl编辑
    npminstall--savevue-handsontable-official<template><divclass="wrap"><HotTable:root="test":settings="hotSettings"></HotTable></div></template><scri......
  • 406.queue-reconstruction-by-height 根据身高重建队列
    问题描述406.根据身高重建队列解题思路首先根据身高对数组重新排序,再根据ki进行插入操作。排序时,需要对排序的比较方法重写,参见C++sort排序函数用法。同时,考虑到基于......
  • ViewPager2实现Tab标签页面
    是在此篇博文Viewpager迁移至ViewPager2实现Tab标签页面_Code-Porter的博客-CSDN博客的基础上对一些细节进行了补充,请支持原作者。使用的编译软件是AndroidStudio2019......
  • uniapp实现国际化多语言切换
    前言项目有海外用户所以需要配置多语言满足客户需求解决方法在uni-app里有内置i18n多语言的配置,并且uni-app里的组件可是可以支持跟随设置语言进行变换的,i18n的主要功能是可......
  • 三 docker安装rabbitMQ之springboot集成stomp,实现前端主动刷新
    一 场景分析对于一些需要数据同步的场景中,例如后台数据有变化,需要程序主动刷新前端界面的数据显示,这样能提供更好的用户数据交互,能第一时间了解到资源信息的变化,而不是......
  • CSharp实现关机、重启、注销、休眠类
    关机、重启、注销、休眠类usingSystem;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Text;namespacePowerManager{///<s......
  • JS/TS数据结构---栈(单调栈)和队列
    一、栈栈(stack)是一种操作受限的线性表数据结构,基于后进先出(LIFO)策略的集合类型,例如函数中的临时变量符合后进先出的特性,因此用栈保存最合适。  在入栈和出栈过程中所需......
  • LMS算法MatLab实现
      LMS自适应滤波器是使滤波器的输出信号与期望响应之间的误差的均方值为最小,因此称为最小均方(LMS)自适应滤波器。其原理及推导见http://download.csdn.net/source/432206......
  • 直播平台源代码,循环滚动RecyclerView的实现
    直播平台源代码,循环滚动RecyclerView的实现由于RecyclerView不支持自动滚动,那么首先我们需要进行一些自定义操作。让RecyclerView自动滚动有两种思路。方法1:添加属性动......
  • 记录不存在则插入,存在则更新 → MySQL 的实现方式有哪些?
    开心一刻今天我爸、我、我女儿一起吃饭,我们每人一个鸡腿女儿问道:爸爸,你吃鸡腿吗我以为她要把她的鸡腿给我吃,倍感欣慰地说道:我不吃,宝贝女儿一把抓起我的鸡腿......