第七题 用两个栈实现队列
来源:互联网 发布:linux渗透测试系统 编辑:程序博客网 时间:2024/06/01 09:16
题目:用两个栈实现队列,队列的声明如下,用两个函数appendTail和deleteHead实现尾插和头删:
template<typename T>class CQueue{public: CQueue(); ~CQueue(); void appendTail(const T& node); T deleteHead();private: stack<T> stack1; stack<T> stack2;};
插入元素选择直接插入到一个stack里面就可以了,删除元素可以利用空余的栈去实现,(先判断空余栈是否为空)把之前插入的元素出栈再入到空余栈中,顺序就又反回来了,然后依此出栈就可以了。
template<typename T>void CQueue<T>::appendTail(const T& element){ stack1.push(element);}template<typename T>T CQueue<T>::deleteHead(){ if(stack2.empty()) { while(!stack1.empty()) { T data = stack1.top(); stack1.pop(); stack2.push(data); } } if(stack2.empty()) { throw new exception("queue is empty"); } T head = stack2.top(); stack2.pop(); return head;}
阅读全文
0 0
- 第七题 用两个栈实现队列
- 笔试题:用两个栈实现队列
- [算法题]用两个栈实现队列
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 智障自学深度学习系列-2 字词的向量表示
- html界面的设计开发
- ETCD命令集合
- AtCoder GC 018B: Sports Festival 题解
- ios中通过代码来创建第一个页面
- 第七题 用两个栈实现队列
- 关于ubifs在断电时丢失数据的处理方法
- 【HDU-1280】 前m大的数
- Makefile文件名操作函数
- sqlserver中修改表之后无法保存
- 控制耦合
- 关于android中的.9图制作
- spring boot 1.5.4使用JPA,遇到Mysql区分大小写的问题
- - `Yoga (= 0.44.0.React)` required by `React/Core (0.44.0)`