博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
题目:两个单向队列构成一个栈
阅读量:4567 次
发布时间:2019-06-08

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

题目:两个单向队列构成一个栈

//两个队列构成一个栈//StackWithTwoQueues#include
//STL#include
using namespace std;template
class BStack{ public: BStack(); ~BStack(); void InStack(const T& elem); T OutStack(); private: queue
q1; queue
q2;};//思路:一个队列空,另一个队列则‘入栈’操作;// 在删除‘栈顶’时,先对非空队列前n-1个元素出队、入队到另一队列,// 最后元素为待删‘栈顶’template
BStack
::BStack(){}template
BStack
::~BStack(){}template
void BStack
::InStack(const T& elem){ if(!q2.empty()) q2.push(elem); else q1.push(elem);}template
T BStack
::OutStack(){ T data; T top; if(!q1.empty()) { while(q1.size() > 1) { data = q1.front(); q1.pop(); q2.push(data); } top = q1.front(); q1.pop(); } else if(!q2.empty()) { while(q2.size() > 1) { data = q2.front(); q2.pop(); q1.push(data); } top = q2.front(); q2.pop(); } else { cerr<<"Stack is empty!"<

 与作者提供思路一致!

转载于:https://www.cnblogs.com/hello-yz/p/3245527.html

你可能感兴趣的文章
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>
win系统查看自己电脑IP
查看>>
Backup&recovery备份和还原 mysql
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>