c++ 两个栈实现一个队列
#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++ 两个栈实现一个队列相关推荐
- 多态指针访问虚函数不能被继承的类快速排序N皇后问题插入排序堆排序merge归并排序栈上生成对象两个栈实现一个队列...
多态 /*1. 要想实现覆盖(重写)父类必须声明为virtual,子类可以不声明为virtual.-->FunB()2. 派生类重写基类的虚函数实现多态,要求函数名.参数列表.返回值完全相同.( ...
- 【剑指offer】用两个栈实现一个队列
题目:两个栈实现一个队列. 栈的特点:先进后出,队列的特点是先进先出 思路:stack1放入数据:pop时,先判断stack2是否为空,如果不为空,直接pop,如果空,则push(stack1.pop ...
- 剑指offer五:两个栈实现一个队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...
- 两个栈实现一个队列,两个队列实现一个栈
题目:用两个栈实现一个队列,用两个队列实现一个栈. 首先要了解栈和队列这两种数据结构各自的特点,栈是一种后入先出(Last In First Out,LIFO)的数据结构,队列是一种先进先出(Firs ...
- python 用两个栈实现一个队列
| 两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素 ...
- java实现-两个栈实现一个队列和两个队列实现一个栈
1.两个栈实现一个队列 思路:压入元素直接入stack1,删除元素先判断stack2中是否为空,如果不为空直接弹出:为空则将stack1中的元素取出压入 stack2中再弹出. 代码: import ...
- python ——两个队列实现一个栈两个栈实现一个队列
1.两个队列实现一个栈 进栈:元素入队列A 出栈:判断如果队列A只有一个元素,则直接出队.否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队.为了下一次继续操作,互换队A和队B. p ...
- 两个栈实现一个队列与两个队列实现一个栈
http://blog.csdn.net/z84616995z/article/details/19204529 两个栈实现一个队列: 原理方法:用一个栈为主栈,一个栈为辅助栈存放临时元素. 入队:将 ...
- 【数据结构】(面试题)使用两个栈实现一个队列(详细介绍)
http://blog.csdn.net/hanjing_1995/article/details/51539578 使用两个栈实现一个队列 思路一: 我们设定s1是入栈的,s2是出栈的. 入队列,直 ...
- 两个栈实现一个队列/两个队列实现一个栈
http://blog.csdn.net/sinat_30472685/article/details/70157227 1两个栈实现一个队列 1.原理分析: 队列的主要操作有两个:入队操作和出队操作 ...
最新文章
- java 分析jstack日志_望闻问切使用jstack和jmap剖析java进程各种疑难杂症
- Linux安装软件时缺少依赖包的简单较完美解决方法!
- 本人对于netty框架的一些理解,怎么与网站上的websock建立连接
- resource.arsc二进制内容解析 之 Dynamic package reference
- 【Coursera】Getting Started with Python:Week One - Reading: Welcome to The Class
- 什么是算术运算和逻辑运算_8086微处理器的算术和逻辑运算
- 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
- 打不开/dev/vmmon:断裂管道_湖北加工管道式自卸除铁器厂家询价咨询_国凯环保设备...
- 神秘的.user.ini文件
- 小米手机将终结卡顿?未来所有机型将升级新MIUI
- P5 MySQL数据类型和类型选择
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- keras安装不成功超时
- 饿了么的谁去拿外卖源码
- 阿里平头哥发布首个产品玄铁910 但这并不是CPU
- 虚拟机Linux共享主机Windows文件夹
- 【羊了个羊】什么!第二关难如上青天,能不能简单版??
- kafka对单分区重设偏移量
- java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化
- Kafka设计原理——consumer rebalance概览及过程