#include <iostream>
#include<stack>//栈
using namespace std;class CQueue{stack<int> stack1,stack2;
public:CQueue(){}void append(int value){stack1.push(value);}int del(){int value;//如果stack2是非空的,栈顶元素即为队首,直接出栈即可if(!stack2.empty()){value=stack2.top();stack2.pop();}else{//如果stack2是空的,则要将stack1中的元素全部出栈,并压入至stack2中//然后判断stack2中的元素情况,然后得到队首元素//将stack1中的元素转移至stack2中while(!stack1.empty()){stack2.push(stack1.top());stack1.pop();}//如果stack2非空,取stack2的栈顶元素即可if(!stack2.empty()){value=stack2.top();stack2.pop();}else{//如果此时stack2仍为空,则说明队列为空,没有元素value=-1;}}cout<<value<<endl;return value;}
};int main()
{CQueue q;q.append(1);q.append(2);q.append(3);q.del();q.del();q.del();q.del();q.del();q.del();return 0;
}

c++ 两个栈实现一个队列相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 两个栈实现一个队列与两个队列实现一个栈

    http://blog.csdn.net/z84616995z/article/details/19204529 两个栈实现一个队列: 原理方法:用一个栈为主栈,一个栈为辅助栈存放临时元素. 入队:将 ...

  9. 【数据结构】(面试题)使用两个栈实现一个队列(详细介绍)

    http://blog.csdn.net/hanjing_1995/article/details/51539578 使用两个栈实现一个队列 思路一: 我们设定s1是入栈的,s2是出栈的. 入队列,直 ...

  10. 两个栈实现一个队列/两个队列实现一个栈

    http://blog.csdn.net/sinat_30472685/article/details/70157227 1两个栈实现一个队列 1.原理分析: 队列的主要操作有两个:入队操作和出队操作 ...

最新文章

  1. java 分析jstack日志_望闻问切使用jstack和jmap剖析java进程各种疑难杂症
  2. Linux安装软件时缺少依赖包的简单较完美解决方法!
  3. 本人对于netty框架的一些理解,怎么与网站上的websock建立连接
  4. resource.arsc二进制内容解析 之 Dynamic package reference
  5. 【Coursera】Getting Started with Python:Week One - Reading: Welcome to The Class
  6. 什么是算术运算和逻辑运算_8086微处理器的算术和逻辑运算
  7. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
  8. 打不开/dev/vmmon:断裂管道_湖北加工管道式自卸除铁器厂家询价咨询_国凯环保设备...
  9. 神秘的.user.ini文件
  10. 小米手机将终结卡顿?未来所有机型将升级新MIUI
  11. P5 MySQL数据类型和类型选择
  12. 在一个软件开发项目中进行实际日程安排的十二点提示(转)
  13. keras安装不成功超时
  14. 饿了么的谁去拿外卖源码
  15. 阿里平头哥发布首个产品玄铁910 但这并不是CPU
  16. 虚拟机Linux共享主机Windows文件夹
  17. 【羊了个羊】什么!第二关难如上青天,能不能简单版??
  18. kafka对单分区重设偏移量
  19. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化
  20. Kafka设计原理——consumer rebalance概览及过程

热门文章

  1. typedef常见用法
  2. 微软雅黑与等宽字体Source Code Pro下载
  3. 效仿大众?宝马全新平台战略:简化硬件,强化软件差异化
  4. 大牛解密阿里云直播技术平台
  5. kotlin-stdlib 与 kotlin-stdlib-jdk7
  6. 徽州区数字城管平台智慧管理城市
  7. Google Guice
  8. Brocade博科光纤交换机之 常用命令
  9. jsessionId的使用
  10. 无线系列-WiFi信号波形产生器