博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个队列实现栈和两个栈实现队列
阅读量:5344 次
发布时间:2019-06-15

本文共 1507 字,大约阅读时间需要 5 分钟。

栈:先进后出

队列:先进先出

1:两个队列实现栈:

队列A

队列B

入栈:入队列A, 1,2,3,4 入栈,在队列A里为 A: 1,2,3,4

出栈,将队列A中的元素入队列B直到队列A里的元素只剩下一个,则队A为4,队B为1,2,3,A:4,B:1,2,3,输出A队头4

#include 
#include
using namespace std;queue
A,B;void PushStack(int value)//向非空的那个队列入队{ if (!A.empty()==true&&B.empty()==true) { A.push(value); } else if (!B.empty()==true&&A.empty()==true) { B.push(value); } else //A B均为空 { A.push(value); }}int PopStack()//由非空的队列向空队列入队,知道剩下最后一个元素{ int m = 0; if (!A.empty()==true&&B.empty()==true) { while(A.size()!=1) { B.push(A.front()); A.pop(); } m = A.front(); A.pop(); return m; } else if (!B.empty()==true&&A.empty()==true) { while(B.size()!=1) { A.push(B.front()); B.pop(); } m = B.front(); B.pop(); return m; } return 0;}int main(){ for (int i = 1; i < 5; i++) { PushStack(i); } cout<
<
2:两个栈实现队列

A:入栈队

B:出栈队

由于栈为先进后出,两个栈正好满足先进先出

入队:

入栈A,A:1,2,3,4

出队:将栈A的元素入栈B,直到为空,B:4,3,2,1;出栈1

#include
#include
using namespace std;stack
A,B;void PushQueue(int value){ A.push(value);}int PopQueue(){ int m; while (!A.empty()) { B.push(A.top()); A.pop(); } if (!B.empty()) { m = B.top(); B.pop(); } else m = 0; while(!B.empty()) { A.push(B.top()); B.pop(); } return m;}int main(){ int m ; for (int i = 1; i < 6; i++) { PushQueue(i); } for (int i = 1; i < 4; i++) { int m1 = PopQueue(); cout<
<

转载于:https://www.cnblogs.com/foreverlearn/archive/2012/04/11/2723568.html

你可能感兴趣的文章
struts1和struts2的区别
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
YUI3自动加载树实现
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
malloc() & free()
查看>>
Linux 的 date 日期的使用
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>