用两个stack实现queue

2023-11-02

stack和queue都是一种线性结构。要用stack实现queue的push和pop方法,我们首先需要了解下这两种结构的特点。
stack:数据先进后出。
queue:数据先进先出。
我们记两个stack分别是head、tail。我们的想法是这样的,既然是要保证queue的push和pop方法,就是准确得到queue的队头和队尾,我们拥有两个栈,我们只要在head里面push,到pop的时候我们只要循环在tail栈push head的头,pop head栈的头操作。直到head为空。

template <class T>
class MyQueue
{
public:
    bool empty()const
    {  
        return head.empty()&&tail.empty();//用STL栈里面的函数
    }

    void push(T t)
    {
        head.push(t);
    }

    //删除队头元素
    //把head中的数据转移到tail中,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用两个stack实现queue 的相关文章

随机推荐

  • org.springframework.data.mongodb.core.query.Criteria

    导包路径 import org springframework data mongodb core query Criteria import org springframework data mongodb core query Quer
  • maven本地仓库有依赖包,还会远程下载的问题

    遇见这样的问题 明明本地有需要的依赖包 但是maven还是会从远程仓库拉取 如果远程仓库有需要的包还好 如果没有 或者无网络环境下没法访问远程仓库 那就直接报错 走不下去了 原因 在本地仓库的每个依赖包都存在这样的文件 remote rep
  • 关于npm install md5报错the command again as root/Administrator的解决办法

    nodejs安装依赖报错 venv PS D pythonProject gt npm install md5 npm ERR code EPERM npm ERR syscall mkdir npm ERR requiredBy npm
  • 回顾Vue&vue-cli

    Vue是一个MVVM Model View ViewModel 前端渐进式框架 框架 核心在于视图与模型的双向绑定 数据发生变化 则视图会发生变化 反之视图发生变化数据也会发生变化 导入vue cdn 基础语法 if else div me
  • Qt/MFC获取主窗口的指针

    在不同的窗口类中 不同的类之间需要互相访问 有时需要知道另一个窗口类的指针来调用他的函数 本文介绍两种方法 如下 Qt 方法1 WId ir WId FindWindow NULL L Target className pM classNa
  • ajax多文件上传插件,jquery多文件上传插件

    jquery imageuploader js是一款jquery多文件上传插件 该jquery多文件上传插件主要用于上传图片 它允许你选择多个图片文件 也可以直接拖拽图片到指定区域 然后显示图片的预览图和信息 最后通过Ajax一次性上传选择
  • 面向对象这么久了,还没找到对象?

    写代码的小伙伴们真幸福啊 想要对象了 没问题 new一个就好了 但是 new太多对象 对象也会生气的哦 你瞧 她来了 从两段代码发现端倪 我们来计算一个矩形的面积 看看这两段代码有什么区别呢 第一段 const height 3 const
  • #R语言# 并行计算-foreach

    最近经常要用R跑程序 每次都要跑好久 不加并行 CPU利用率实在低 在此记录下相关的语句 先导入相关包 library foreach library doParallel library parallel no cores lt dete
  • “执行文化”向“创业文化”的转变( 15年6月)

    社长在15年度事业方针里面提到 事业计划不再是军令 考核事业部的是ROI 这句话 怎么理解 谁也没有解释过 所以我也不太理解具体的内容 但我们可以看看国内的家电企业 比如海尔在做什么 海尔提出过许多新的词汇 网格化 去中心化 海尔开放平台
  • feign-引入-服务之间的调用

    总结 1 导入openfeign的包 2 创建一个接口 FeignClient配置服务的名称 配置调用的服务的url 拷贝调用服务接口过来修改 3 启动类上打上 EnableFeignclients注解 是否配置包的原则 feign所在包和
  • 日历中的数字

    题目描述 ElemenT马上就要毕业了 他打开日历看了看时间 发现日历上的日期都是2017 04 04这样的格式的 月和日如果不足2位数 前面都会补充0 给定一个年份和月份 ElemenT把那个月的日期都按上述格式写到纸上 他现在想知道某种
  • 没有免费的午餐定理和丑小鸭定理

    没有免费的午餐定理 noerfelunhchtocerm 简称NFL 该定理由wolpert和Macerday提出 结论是由于对所有可能函数的相互补偿 最优化算法的性能是等价的 该定理暗指 没有其它任何算法能够比搜索空间的线性列举或者纯随机
  • libevent使用点滴(1)使用libevent调用evthread_use_pthreads的一个可能的内存泄露

    使用libevent时为了保证线程安全 提供了evthread use pthreads函数 他的内部是会分配内存的 但是没有对应的函数来反释放evthread use pthreads分配的内存 那么在如下的场景用evthread use
  • [007]爬虫系列

    一 备注 在阅读此文章前 请先阅读前两篇 007 爬虫系列 猿人学爬虫攻防大赛 第五题 js混淆 乱码增强 上 007 爬虫系列 猿人学爬虫攻防大赛 第五题 js混淆 乱码增强 中 本篇文章某个流程出了问题 即 直接贴代码 最后可能返回40
  • eclipse怎么查看开发包jar里源代码

    最近我打算学习一下谷歌的类库Guava 下载了Guava r09 jar包及其源码 为了可以方面的 看其源码 我将其源码导入 下面是导入的方法 我用的是eclipse 在Eclipse查看开发包jar源码的方法如下 1 选择项目 右键中单击
  • QDialog的相关API函数

    目录 常用的一些 API 函数 QDialog 的子类 QMessageBox QFileDialog QFont 字体类 QColorDialog QInputDialog QProgressDialog 总结 QDialog是Qt框架中
  • 单片机之瑞萨RL78 串口通信的例子

    瑞萨RL78 串口通信 瑞萨RL78 G1D单片机的串口收发数据的例子 在此示例中 我们将使用串口0 波特率为9600 include rl78g1d h define UART0 RECEIVE BUFFER U0RBR define U
  • SpringBoot集成Hasor-Dataway数据查询接口

    目录 一 前言 1 Hasor Core Core 容器框架 设计思想 特性 2 Hasor Web Web 框架 3 Hasor DB JDBC 框架 特性 4 Hasor DataQL DataQL 服务查询引擎 设计思想 特性 数据类
  • python中print的本质_python数据分析、挖掘常用工具,让你看到不一样的数据分析...

    Python语言 简要概括一下Python语言在数据分析 挖掘场景中常用特性 列表 可以被修改 元组 不可以被修改 字典 结构 集合 同数学概念上的集合 函数式编程 主要由lambda map reduce filter 构成 Python
  • 用两个stack实现queue

    stack和queue都是一种线性结构 要用stack实现queue的push和pop方法 我们首先需要了解下这两种结构的特点 stack 数据先进后出 queue 数据先进先出 我们记两个stack分别是head tail 我们的想法是这