STACK 非标准版
2016-05-18 23:17
363 查看
#include <iostream> using namespace std; #include<queue> //使用两个队列实现一个栈 template<class T> class Stack { public: void Push(const T& d) { if (!q1.empty()) q1.push(d); else q2.push(d); } void Pop() { if (!q1.empty()) _Pop(q1, q2); else _Pop(q2, q1); } bool Empty() { if (q1.empty() && q2.empty()) return true; else return false; } T& Top() { if (!q1.empty()) return q1.back(); else return q2.back(); } size_t Size() { if (!q1.empty()) return q1.size(); else return q2.size(); } protected: void _Pop(queue<T>& Q1, queue<T>& Q2) { while (Q1.size()>1) { T& data = Q1.front(); Q2.push(data); Q1.pop(); } Q1.pop(); } protected: queue<T> q1 , q2; }; int main() { cout << "Hello,C++ world of AnycodeX!" << endl; return 0; }
相关文章推荐
- DB2编程序技巧(1)
- 网络路由技术及运用1
- 微软NET Framework 3.5 Beta 1 发布 提供下载
- python 1
- OCM考点之一外部表管理
- android 编译源码 错误解决
- dos下用户切换
- CentOS5.9 安装oracle 11g 遇到的各种问题
- xtraTreeList 使用汇集1
- 电脑快捷键大全
- 老李分享:走读unittest源码 1
- Jsp&Servlet之Cookie
- 提出建议
- cisco路由、交换、安全设备型号大全!
- [南帝北丐]快速升级20级全攻略
- 软件避免淘汰
- SQL中where 1=1语句的作用
- MSF目录结构
- Android 四大组件【持续更新中】
- leetcode 1 Two Sum