使用两个栈(stack)实现一个队列(queue)
来源:互联网 发布:mysql默认安装地址 编辑:程序博客网 时间:2024/06/04 23:16
题目:
已知下面Stack类及其3个方法Push、Pop和Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法。
class Stack { … public: void Push(int x); // Push an element in stack; int Pop(); // Pop an element out of stack; int Count() const; // Return the number of the elements in stack; … };
class Queue { … public: void Enqueue(int x); int Dequeue(); private: Stack s1; Stack s2; … };
思路:
s1作为存储空间,以s2作为临时缓冲区。
入队时,将元素压入s1。
出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒回”s1。
优化:
在出队时,将s1的元素逐个“倒入”s2时,原在s1栈底的元素,不用“倒入”s2(即只“倒”s1.Count()-1个),可直接弹出作为出队元素返回。这样可以减少一次压栈的操作。
阅读全文
0 0
- 使用两个栈(stack)实现一个队列(queue)
- 用两个栈(Stack)实现一个队列(Queue)
- 用两个栈(Stack)实现一个队列(Queue)
- 用两个栈(Stack)实现一个队列(Queue)
- 用两个队列(Queue)实现一个栈(Stack)
- 数据结构——两个栈(Stack)实现一个队列(Queue)
- 使用栈Stack实现队列Queue
- 自己实现一个栈(Stack)和队列(Queue)
- java操作两个stack实现一个queue(并发下)
- 面试题---使用栈stack实现队列queue
- 两个队列实现栈(stack)
- Implement queue with two stack 用两个堆实现队列
- 利用栈Stack实现队列(Queue)
- python实现stack(栈)和队列(queue)
- Java实现栈Stack和队列Queue
- Implement Stack using Queues 两个队列实现一个栈
- 两个队列实现一个栈[leetcode]Implement Stack using Queues
- stack 栈 queue 队列
- 问题整理汇总记录
- java定时任务
- 根据城市名称获取所在经纬度
- gcc简单使用(编译)
- 如何相互转换逗号分隔的字符串和List (Java程序员日记 2015/03/06)
- 使用两个栈(stack)实现一个队列(queue)
- SpringBootCLI安装
- WM size work flow
- 2017年工作感悟及总结
- 转换一个xml格式的字符串到json格式
- 1、从上往下打印出二叉树的每个节点,同层节点从左至右打印
- __bridges、__block、typedef
- listview条目中imageview设置方法
- python多线程爬取糗事百科 案例 爬取结果保存json