• 知识点:
    栈----先进后出,队列–先进先出
  • 题目
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
  • 解法
class CQueue {public:CQueue() {}void appendTail(int value) {m_pin_stack.push(value);}int deleteHead() {if(!m_pop_stack.empty()){int val_ = m_pop_stack.top();m_pop_stack.pop();return val_;}else{while(!m_pin_stack.empty()){int val_ = m_pin_stack.top();m_pop_stack.push(val_);m_pin_stack.pop();}if(!m_pop_stack.empty()){int val_ = m_pop_stack.top();m_pop_stack.pop();return val_;}return -1;  }return -1;}
private:stack<int> m_pin_stack;stack<int> m_pop_stack;
};/*** Your CQueue object will be instantiated and called as such:* CQueue* obj = new CQueue();* obj->appendTail(value);* int param_2 = obj->deleteHead();*/
  • 运行结果:

LeetCode-----用两个栈实现一个队列相关推荐

  1. 算法图解:如何用两个栈实现一个队列?

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 本文已收录至 https://github.com/vipstone/algori ...

  2. java 栈和队列实现迷宫代码_算法图解:如何用两个栈实现一个队列?

    本文已收录至 https://github.com/vipstone/algorithm <算法图解>系列. 队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(<队列> ...

  3. 多态指针访问虚函数不能被继承的类快速排序N皇后问题插入排序堆排序merge归并排序栈上生成对象两个栈实现一个队列...

    多态 /*1. 要想实现覆盖(重写)父类必须声明为virtual,子类可以不声明为virtual.-->FunB()2. 派生类重写基类的虚函数实现多态,要求函数名.参数列表.返回值完全相同.( ...

  4. 【剑指offer】用两个栈实现一个队列

    题目:两个栈实现一个队列. 栈的特点:先进后出,队列的特点是先进先出 思路:stack1放入数据:pop时,先判断stack2是否为空,如果不为空,直接pop,如果空,则push(stack1.pop ...

  5. 剑指offer五:两个栈实现一个队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...

  6. 两个栈实现一个队列,两个队列实现一个栈

    题目:用两个栈实现一个队列,用两个队列实现一个栈. 首先要了解栈和队列这两种数据结构各自的特点,栈是一种后入先出(Last In First Out,LIFO)的数据结构,队列是一种先进先出(Firs ...

  7. python 用两个栈实现一个队列

    | 两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素 ...

  8. java实现-两个栈实现一个队列和两个队列实现一个栈

    1.两个栈实现一个队列 思路:压入元素直接入stack1,删除元素先判断stack2中是否为空,如果不为空直接弹出:为空则将stack1中的元素取出压入 stack2中再弹出. 代码: import ...

  9. python ——两个队列实现一个栈两个栈实现一个队列

    1.两个队列实现一个栈 进栈:元素入队列A 出栈:判断如果队列A只有一个元素,则直接出队.否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队.为了下一次继续操作,互换队A和队B. p ...

最新文章

  1. 关于CLR、CIL、CTS、CLS、CLI、BCL和FCL
  2. 浅析 PHP 中的 Generator
  3. 第一次作业之成员介绍
  4. 第一次软工作业展示——潘学
  5. RCC 2017 Qual 1 Mail.Ru, April 2, 2017 Problem B. Painting the Wall
  6. 进行优化处理(WinXP),加快系统运行速度
  7. [crypto][ipsec] 简述ESP协议的sequence number机制
  8. .net remoting与web service的区别
  9. 工科学生考研能选择计算机专业么,考研应该如何选择学校和专业
  10. 小米为什么拆分红米? | 畅言
  11. 【2019-1期 QFC素质拓展活动】圆满结束
  12. c++ primer 5学习小结
  13. 如何合理的使用统计图表
  14. 五行俱全才能成为合格的游戏系统策划!
  15. 京牌车辆过户以后车辆保险怎么办?
  16. 蓝桥杯0027 通信密码
  17. Web安全:白帽子黑客训练营
  18. [朝气蓬勃][22H2]Win11.0.22622.450专工-微创-优化
  19. samtools从fastq到bam再到bigwig(bw)
  20. 做食品能入驻Lazada吗?带你解锁东南亚当地热销及需求食品系列

热门文章

  1. 基本功:SQL 多表联合查询的几种方式
  2. 如何才能打造一个良好的Java功底,提高自己的核心竞争力?
  3. B 站疯传!P8技术大佬分享了20个免费Java课程,白拿不谢!!
  4. Flask消息闪现及日志记录
  5. 23种设计模式(5)-适配器模式
  6. 如何计算虚拟化vcpu_首次公开:腾讯云虚拟化技术原理及可用性提升实践
  7. spring各个jar包作用
  8. Springboot视图解析与模板引擎
  9. TCP 粘包和拆包及解决方案
  10. 基于bootstrap模态框的日期选择器