用两个队列实现栈
2016-05-18 20:06
155 查看
#include <queue> template <typename T> class CStack { public: void AddToTail(const T&); T deleteHead(); private: std::queue<T> queue1; std::queue<T> queue2; }; template <typename T> void CStack<T>::AddToTail(const T& value) { queue1.push(value); } template <typename T> T CStack<T>::deleteHead() { int flat = 0; if (!queue1.empty()) { while (queue1.size() > 1) { T& data = queue1.back(); queue2.push(data); queue1.pop(); } flat = 1; } else { while (queue2.size() > 1) { T& data = queue2.back(); queue1.push(data); queue2.pop(); } flat = 2; } T result; if (flat == 1) { result = queue1.back(); queue1.pop(); } else if (flat == 2) { result = queue2.back(); queue2.pop(); } else { throw new exception("stack is empty"); } return result; }
相关文章推荐
- 写给当下的自己!!!
- HDU-1233-畅通工程(并查集)
- 初学jQuery就遇到问题
- MYSQL使用正则表达式过滤数据
- 用两个栈实现队列
- 简单判断某个数是不是2或3的n次幂
- 初识博客,为我的学习之路留下足迹~
- phpize Cannot find autoconf. 错误解决
- 编写并运行嵌入式环境Qt版本的Hello world
- 定义一个Activity类型的dialog
- boost--timer库笔记
- App 研发录、架构设计、Crash分析和竞品技术分析------读书笔记(第二章)
- Eclipse常用快捷键 --15
- Android 虚拟机中与PC键盘对应的按键 --14
- 杭电acm 2017统计字符串中数字的个数
- C++Primer笔记 第一章
- Android Fragment 真正的完全解析(下)
- 基于C语言的动态沙漏
- Calendar(日历)--选择日期
- canvas学习线条属性之lineCap