题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路

一个水题,不过有一个坑:我们假设stack1是输入用的,stack2是输出用的,必须是stack2是空的时候才能把所有stack1的数据放入stack2中!

AC代码

#include <iostream>
#include <stack>
#include <vector>
using namespace std;class Solution {public:void push(int node) {stack1.push(node);}int pop() {if(stack2.empty()) {while(!stack1.empty()) {auto t = stack1.top();stack1.pop();stack2.push(t);}}auto t = stack2.top();stack2.pop();return t;}private:stack<int> stack1;stack<int> stack2;
};
// 下面是测试用的
int main() {Solution so;so.push(1);so.push(2);so.push(3);cout << so.pop() << " ";cout << so.pop() << " ";so.push(4);cout << so.pop() << " ";so.push(5);cout << so.pop() << " ";cout << so.pop() << " ";return 0;
}

剑指offer两个栈来实现一个队列相关推荐

  1. JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)

    最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...

  2. 《剑指offer》c++版本 9. 用两个栈来实现一个队列

    如题: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 本题考察对数据结构队列,栈的理解.队列的特点是FIFO,先进先出.栈的特点是FILO,先进后出.题目要求我 ...

  3. 牛客网(剑指offer) 第五题 用两个栈来实现一个队列

    //用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. //方法一:没有用到栈 $queue=array(); function mypush($node) {glo ...

  4. abap判断包含字符当中包含小数点_剑指Offer整理3 -- 栈和队列 + 数学和字符串

    专题3 栈和队列 + 数学和字符串 专题3-1 栈和队列 1. 栈的压入弹出序列 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字 ...

  5. 剑指offer 算法(栈和队列 查找和排序)

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解析:用栈来模拟队列.我们首先插入一个元素a到stack1中,再压入两个元素bc,此时栈中有元素abc, ...

  6. 剑指offer---用两个栈实现队列

    题目:用两个栈实现队列 要求:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 1 class Solution 2 { 3 public: 4 void push ...

  7. 算法:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。...

    算法:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.<剑指offer> 利用栈来进行操作,代码注释写的比较清楚:首先判断两个栈是否是空的:其次当栈二 ...

  8. 化栈为队(两个栈来实现一个队列)

    实现一个MyQueue类,该类用两个栈来实现一个队列. 示例: MyQueue queue = new MyQueue();queue.push(1); queue.push(2); queue.pe ...

  9. N5-用两个栈来实现一个队列

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

最新文章

  1. mysql replication 协议_深入解析MySQL replication协议
  2. Java基础——TreeSet
  3. python网络自动化实例_【python自动化第八篇:网络编程】
  4. liunxs运维_Linux运维工程师必备(命令)
  5. 妙用TurboMail企业通讯平台,重要邮件不再躲猫猫
  6. 安卓日记本设计内容介绍_天一 | 教你捷径,使用VB开发安卓程序!
  7. [已解决]安装MPICH2(x64)时显示需要安装NET FRAMEWORK 2.0.50727
  8. 开涛传–记京东“首席”架构师张开涛
  9. 基于OpenCPU方案的BC26 NB模组开发总结
  10. HttpClient下载图片不完整的解决办法
  11. BGP线路是什么意思?BGP双线的优点是什么?
  12. 【Windows】解决家庭版系统无法开启远程桌面连接的问题
  13. 计算机界五位巾帼英雄
  14. google登陆失败问题解决
  15. 基于极化码(Polar Code)的加密
  16. pycharm安装、首次使用及汉化
  17. gzp解压命令 linux_Linux gzip命令:压缩文件或目录
  18. Python语言基础编程
  19. 数字滚动效果(number-flip)
  20. PaperFree-论文查重

热门文章

  1. G - Periodic Strings (周期串)
  2. 《南溪的目标检测学习笔记》——数值编码(encode)的学习笔记
  3. 自动驾驶——localization的学习笔记
  4. 目标检测——域自适应只对同源的样本有效
  5. 线性筛法求质数分解、欧拉函数
  6. FreeRTOS 软件定时器使用
  7. 剑指offer——5.替换空格
  8. 【阅读】《番茄工作法图解》---让工作更高效
  9. Apache JMeter (二)性能测试 入门实例
  10. hiho 第155周 任务分配