剑指offer---用两个栈实现队列(7)
来源:互联网 发布:51单片机蜂鸣器程序 编辑:程序博客网 时间:2024/05/20 01:46
题目:用两个栈实现一个队列,队列的声明如下,请实现它的两个函数addendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点。
思想:对stack1,和stack2操作来实现队列的入队和出队。
入队:直接push进stack1中。
出队:如果stack2为空,将stack1中的全部元素依次出栈压入到stack2中,再对stack2进行出栈操作。
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>void cQueue<T>::appendTail(const T& node){ stack1.push(node);}template <typename T>T cQueue<T>::deleteHead(){ if(stack2.size() <= 0) { while(!stack1.empty()) { T& data = stack1.top(); stack2.push(data); stack1.top(); } } if(stack2.size() == 0) { throw new exception("queue is empty"); } T head = stack2.top(); stack2.pop(); return head;}
阅读全文
0 0
- 剑指offer---用两个栈实现队列(7)
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指offer|用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- webpack实战——(4)处理项目中的资源文件
- Python Mysql:增删改查
- 使用反射机制创建万能的数据库的增删查改
- Oracle EBS Interface/API(4)--AR贷项通知单
- Android搜索框存储搜索记录
- 剑指offer---用两个栈实现队列(7)
- Leedcode 算法习题 第十一周
- php读取网络文件 curl, fsockopen ,file_get_contents 几个方法的效率对比
- STM32系统学习——USART(串口通信)
- 注册登录请求中RSA加密,PHP服务器和Android客户端实现
- CentOS 7 上安装vim(默认未安装)
- java实现定时任务的三种方法
- DevExpress控件使用API
- Java Email的发送工具类及相关530问题解决