用两个栈实现队列
来源:互联网 发布:试验数据库 编辑:程序博客网 时间:2024/06/05 23:55
用两个栈实现一个队列,队列声明如下,实现它的两个函数appendTail和deleteHead,分别完成在队尾插入结点和在队列头部删除结点的功能
template <typename T>class CQueue{public:CQueue();~CQueue();void appendTail(const T& nods);T deleteHead();private:stack<T> stack1;stack<T> stack2;};
#include <iostream>#include <stack>#include <exception>using namespace std;template <typename T>class CQueue{public:CQueue(){};~CQueue(){};void appendTail(const T& nods);T deleteHead();private:stack<T> stack1;stack<T> stack2;};template <typename T>void CQueue<T>::appendTail(const T& nods){stack1.push(nods);}template <typename T>T CQueue<T>::deleteHead(){if (stack2.size() == 0){if (stack1.size() > 0){while (stack1.size() > 0){T& data = stack1.top();stack1.pop();stack2.push(data);}T& ret = stack2.top();stack2.pop();return ret;}elsethrow new exception();}else{T ret = stack2.top();stack2.pop();return ret;}}int main(){CQueue<int> myDeque;myDeque.appendTail(1);myDeque.appendTail(2);myDeque.appendTail(3);try{cout << myDeque.deleteHead() << endl;cout << myDeque.deleteHead() << endl;} catch(exception ex) {cout << "has exception" << endl;}return 0;}
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 内存拷贝函数进阶
- Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
- PCA的一些基本资料 以及MATLAB实现
- 致家驹--祝你愉快
- zb的生日
- 用两个栈实现队列
- usaco 5.3.4 Big Barn
- 涂鸦
- 课本笔记--运营管理(三)
- 关于route命令
- 嵌入式课程设计实践(四)——socket
- [HTTP权威指南读书笔记]第四章—连接管理
- JavaScript入门:003—JS中的变量
- java编码字符集及jdbc连接数据库指定字符集