#include <iostream>
#include <stack>
using namespace std;// 用两个stack实现一个queue, 以int类型为例吧
class MyQueque
{
private:stack<int> s1; // s1负责入队stack<int> s2; // s2负责出队public:// 入队void push(int x){s1.push(x);}// 出队void pop(){if(!s2.empty()){s2.pop();}else{while(!s1.empty()){int tmp = s1.top();s1.pop();s2.push(tmp);}s2.pop();}}// 取头int front(){if(!s2.empty()){return s2.top();}while(!s1.empty()){int tmp = s1.top();s1.pop();s2.push(tmp);}return s2.top();}// 取尾int back(){if(!s1.empty()){return s1.top();}while(!s2.empty()){int tmp = s2.top();s2.pop();s1.push(tmp);}return s1.top();}// 求大小int size(){return s1.size() + s2.size();}// 判断是否为空bool empty(){if(s1.empty() && s2.empty()){return true;}return false;}
};int main()
{{MyQueque que;que.push(1);que.push(2);que.push(3);que.push(4);que.push(5);while(!que.empty()){cout << que.front() << endl;que.pop();}cout << "-------------------" << endl;}{MyQueque que;que.push(1);que.push(2);que.push(3);que.push(4);que.push(5);while(!que.empty()){cout << que.size() << endl;que.pop();}cout << "-------------------" << endl;}{MyQueque que;que.push(1);que.push(2);que.push(3);que.pop();que.pop();que.push(4);que.push(5);while(!que.empty()){cout << que.front() << endl;que.pop();}cout << "-------------------" << endl;}return 0;
}

两个栈来实现一个队列的C++代码相关推荐

  1. 两个栈来实现一个队列的C++代码(某公司社会招聘笔试题)

    利用两个栈来实现一个队列, 这个问题很常见.  最关键的是要有好的思路, 至于实现, 那是很简单的事情了. 在本文中, 也想说说自己的思路, 但是, 我觉得用代码来表述思路更符合我的习惯, 也是我的菜 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 剑指offer两个栈来实现一个队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路 一个水题,不过有一个坑:我们假设stack1是输入用的,stack2是输出用的,必须是stack2 ...

最新文章

  1. Nehalem LGA1156/1155插座实物首次曝光
  2. MYSQL(04)-间隙锁详解
  3. 【Java面试题】34 List 、Map、Set 区别?
  4. 使用pip install出现超时警告的解决方法
  5. linux mtu日志,linux MTU调整
  6. php redis官方网站,PHP-redis中文文档介绍
  7. 在Excel中如何利用VBA实现(符合条件)指定(空)行列的批量删除
  8. CodeForces - 877C
  9. .net 平台下的File.Exists和directory .Exists()
  10. 如何使用robots.txt及其详解
  11. 根据收入计算个人所得税
  12. 计算机基础应用本终结性考试,计算机应用基础
  13. 坚果手机2系统相册问题
  14. 怀化市2021年高考查询成绩,2021年怀化高考状元是谁分数多少分,历年怀化高考状元名单...
  15. shell脚本——awk详细介绍(包含应用案例)
  16. echarts旭日图数据重构处理
  17. HTML中head与body标签
  18. 正则表达式的点星匹配
  19. 青龙面板 Bot配置教程
  20. 七彩虹显卡软件测试,【七彩虹FM2A75评测】多款软件测试-中关村在线

热门文章

  1. 记WinCE下调试SIM900 GSM module
  2. 项目管理概述学习记录(一)
  3. java在哪个文件夹_JVM具体在哪个文件夹下的
  4. python hex 补0_Python保留前导零的二进制到十六进制转换
  5. Java日志框架-Spring中使用Logback(Spring/Spring MVC)
  6. echart地图配置
  7. Scrum联盟发布《2016年度Scrum状态调查报告》
  8. windows下qt5 kinect 2.0开发与环境配置
  9. Android开发之搜Ya项目说明(3)
  10. Mongodb的索引