用两个栈实现队列(C++模板)
来源:互联网 发布:淘宝商品拍照技巧 编辑:程序博客网 时间:2024/06/06 13:17
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。
思想很简单,直接上代码:
#include<iostream>#include<stack>#include<exception>using namespace std;template<typename T> class Cqueue{public: Cqueue(); ~Cqueue(); void appendTail(const T& element); T deleteHead();private: stack<T> stack1; stack<T> stack2;};template<typename T> Cqueue<T>::Cqueue(){}template<typename T> Cqueue<T>::~Cqueue(){}template<typename T> void Cqueue<T>::appendTail(const T& element){ stack1.push(element);}template<typename T> T Cqueue<T>::deleteHead(){ if(stack2.size()<=0) { while(stack1.size()>0) { T& data=stack1.top(); stack1.pop(); stack2.push(data); } } if(stack2.size()==0) { throw new exception("queue is empty"); } T head=stack2.top(); stack2.pop(); return head;}int main(){ Cqueue<int> queue; queue.appendTail(1); queue.appendTail(2); queue.appendTail(3); queue.appendTail(8); int Head=queue.deleteHead(); cout<<Head<<endl; Head=queue.deleteHead(); cout<<Head<<endl; Head=queue.deleteHead(); cout<<Head<<endl; Head=queue.deleteHead(); cout<<Head<<endl; queue.appendTail(9); Head=queue.deleteHead(); cout<<Head<<endl; system("pause"); return 0;}
阅读全文
1 0
- 用两个栈实现队列(C++模板)
- 用两个队列实现栈(C++模板)
- 两个栈实现一个队列(C/C++)
- 剑指offer题解C++【5】用两个栈实现队列
- C++:利用两个栈实现队列操作
- 【C++】两个队列实现一个栈
- 【C++】两个栈实现一个队列
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- Android Kotlin遇到的坑
- Vue-cli开发SPA应用(适用初学者)
- ntp配置时间同步服务器
- DataGrid中出现在AddNew或EditItem事务过程不允许Deferrefresh报错
- 系统移植相关网址
- 用两个栈实现队列(C++模板)
- WPF 如何让DataGrid中的列标题居中
- MySQL存储引擎的优缺点
- php 7连接MySql数据库的例子
- 10大主流压力测试工具推荐
- C文件读写函数
- [047]python操作redis数据结构
- 大数据学习记录(day1)--云计算
- JS闭包总结