题目描述:

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

输入:

每个输入文件包含一个测试样例。
对于每个测试样例,第一行输入一个n(1<=n<=100000),代表队列操作的个数。
接下来的n行,每行输入一个队列操作:
1. PUSH X 向队列中push一个整数x(x>=0)
2. POP 从队列中pop一个数。

输出:

对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。

样例输入:
3
PUSH 10
POP
POP
样例输出:
10
-1这题还是挺简单的,开始的时候没有AC主要是因为输出的格式不对,我把要输出的值存在一个vector里,按要求输出就行了。
#include<iostream>
#include<stack>
#include<vector>
#include<string>
using namespace std;
int main()
{stack<int > stk1;stack<int > stk2;int n;cin>>n;if(n<1||n>100000)return 0;vector<int > res;string str;for(int i=0;i<n; i++){cin>>str;if(str=="PUSH"){int temp;cin>>temp;stk1.push(temp);}else if(str=="POP")    {if(!stk2.empty()){int temp=stk2.top();//    cout<<temp;
                res.push_back(temp);stk2.pop();}else if(stk1.empty()&&stk2.empty()){//cout<<-1;res.push_back(-1);}else{int len=stk1.size();while(len){int temp=stk1.top();stk1.pop();stk2.push(temp);len--;}int temp=stk2.top();//    cout<<temp;
                res.push_back(temp);stk2.pop();}}}for(int i=0;i<res.size();i++)cout<<res[i]<<endl;return 0;
}

转载于:https://www.cnblogs.com/qiaozhoulin/p/5320190.html

题目1512:用两个栈实现队列相关推荐

  1. 剑指offer:面试题09. 用两个栈实现队列

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

  2. 栈一:用两个栈实现队列

    /**  * 题目:用两个栈实现队列  * 描述:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.  * 解决方案:方法一:一个作为存储用,一个作为弹出用  * * ...

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

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

  4. [剑指Offer]9.用两个栈实现队列

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

  5. 剑指OFFER之用两个栈实现队列(九度OJ1512)

    题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 输入: 每个输入文件包含一个测试样例. 对于每个测试样例,第一行输入一个n(1<=n<=1 ...

  6. 脱裤子放屁之用两个栈实现队列、用两个队列实现栈

    牛客网上有一道很nt的题目,用两个栈实现队列,你直接用队列不好吗?还耗内存,真的是脱裤子放屁,但是骂归骂,题目还是要做的. 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为in ...

  7. [剑指Offer]Q9_栈和队列(用两个栈实现队列)

    相关知识介绍 栈 栈是一种常见的数据结构,广泛应用于计算机领域(线程的存储调用) 特点:后进先出(进通常被形象地称为压入(push).出称为弹出(pop) 队列 队列是和栈长得非常像的一种数据结构,不 ...

  8. 【使用两个栈实现队列】

    文章目录 一.栈和队列的基本特点 二.基本接口函数的实现 1.栈的接口 2.创建队列骨架 3.入队操作 4.取出队列元素 5.返回队首元素 6.判断队列是否为空 7.销毁队列 总结 一.栈和队列的基本 ...

  9. leetcode题目-最小栈和用两个栈实现队列

    1.用两个栈实现队列 a栈用来存放加入的数 b栈用来存放要删除的数 当b栈存在数据时,就把top的元素pop掉 直到b栈中没有数据存放,再重新遍历a栈,把a的数据倒着遍历进b栈.也就是b栈存放着倒着的 ...

  10. 剑指offer_第5题_用两个栈实现队列

    题目描述 用两个栈来实现一个队列 完成队列的Push和Pop操作 队列中的元素为int类型 理解 关于栈 什么是栈 栈的抽象数据类型 Python实现栈 关于队列 什么是队列 队列抽象数据类型 Pyt ...

最新文章

  1. java locationuitool_Java JavaUI.getLibraryJavadocLocation方法代码示例
  2. 02.操作系统概述.md
  3. Js实现拖拽 --面向对象封装( 超详细中文注释)
  4. MYSQL数据库应用优化
  5. 10个遥远但近在人间的天堂!
  6. C++奥赛一本通递归题解
  7. 关于多维数组编码与解码的问题
  8. MySQL数据库(10)----IN 和 NOT IN 子查询
  9. mysql xml字段转json格式_mysql将xml数据或者json数据转换为表格。
  10. Flutter 常用的按钮组件
  11. 入行GIS圈N年,看看资深GISer如何进行场景绘制?
  12. GetLastError错误码
  13. gulp压缩图片插件大比拼
  14. oracle expdp parallel,关于EXPDP中的PARALLEL参数
  15. float 精度探究
  16. 使用WebGL 自定义 3D 摄像头监控模型
  17. 小白记录——识别RNA编辑位点
  18. winform程序使用clickonce方式发布之后点击安装没反应
  19. wind上怎么连接mysql_windows上连接mysql数据库怎么连接
  20. 用计算机画画作品,小学生电脑绘画作品简单

热门文章

  1. 客户端中转request请求乱码
  2. 曾经的那些绝世电脑高手们
  3. 稳扎稳打 Silverlight 4.0 教程
  4. 查看文件md5_了解 | Mongodb 文件存储之 GridFs
  5. python中下划线开头的命名_Python中 5 种不同的下划线含义你都知道吗?
  6. mybatis写增删改时候的注意点
  7. 脉冲控制仪C语言程序,可编程脉冲控制仪
  8. 字节跳动代理商_横跨字节跳动海外抖音核心代理商爆发!(002803)
  9. php开发类库,php类库_PHP开发中常用类库
  10. [渝粤教育] 广东-国家-开放大学 21秋期末考试大学英语210262k2