用两个栈实现队列
来源:互联网 发布:虚拟机ubuntu如何分区 编辑:程序博客网 时间:2024/06/09 20:34
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。
代码:
#include <iostream>#include <stack>#include <exception>using namespace std;template<typename T> class CQueue{public: CQueue(); ~CQueue(); void appendTail(const T& node); 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& node){ stack1.push(node); cout << "插入成功" << endl;}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) { cout << "删除失败" << endl; return -1; //这里可以抛出异常 } T head = stack2.top(); stack2.pop(); cout << "删除成功" << endl; return head;}int main(){ CQueue<int> q; q.appendTail(10); q.appendTail(20); q.deleteHead(); q.deleteHead(); q.deleteHead(); system("pause"); return 0;}
测试:
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 充实但是感觉挺累
- HDU2094-产生冠军
- swift中用UIAlertController包装一个UIdatePicker
- ucos-II中的一些基本概念②
- 身份证号码验证算法
- 用两个栈实现队列
- linux的chmod用法详解
- 并查集的迭代优化-食物链
- 2017届中兴综合面试
- 中国剩余
- [数据库]数据库索引
- 第一行代码酷欧天气开发(三)
- Linux CentOS中Redis安装
- Lua简明快速入门(1)