225. Implement Stack using Queues
2016-03-14 12:47
225 查看
Implement the following operations of a stack using queues.
push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
empty() – Return whether the stack is empty.
Notes:
You must use only standard operations of a queue – which means only push to back, peek/pop from front, size, and is empty operations are valid.
Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).
push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
empty() – Return whether the stack is empty.
Notes:
You must use only standard operations of a queue – which means only push to back, peek/pop from front, size, and is empty operations are valid.
Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).
class MyStack { Queue<Integer> queue1 = new LinkedList<Integer>(); Queue<Integer> queue2 = new LinkedList<Integer>(); Queue<Integer> q = new LinkedList<Integer>(); public void push(int x) { queue1.offer(x); } public void pop() { while(queue1.size()>1) queue2.offer(queue1.poll()); queue1.poll(); Queue<Integer> q = queue1; queue1 = queue2; queue2 = q; } public int top() { while(queue1.size()>1) queue2.offer(queue1.poll()); int x = queue1.poll(); queue2.offer(x); Queue<Integer> q = queue1; queue1 = queue2; queue2 = q; return x; } public boolean empty() { return queue1.isEmpty(); } }
相关文章推荐
- UVa 1584 - Circular Sequence
- 530 A secure connection is requiered(such as ssl)
- 关于在非UI线程中修改View
- Hadoop可视化分析利器之Hue
- MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
- UITableView-表格视图
- android studio 创建项目一直停留在building gradle project info
- [Getting and Cleaning data] Quiz 2
- pip自动生成requirements.txt依赖关系清单
- iOS输入视图(如UITextView UITextField)点击时没有弹出键盘输入窗
- UITableView和UITableViewCell的几种样式
- Inventor问题:LNK1104: 无法打开文件"x64\Debug\CustomUI.dll"
- 基于modern ui for wpf的在线公开课平台 之三 使用grid布局
- 使用串口连接Arduino与树莓派开发板
- request.getParameter和request.getAttribute之间的区别
- Mahout随机森林算法源码分析2BuildForest
- 设置UITableView分割线的颜色和位置
- gui设计中的enable问题
- 关于request.setAttribute多页传值,多页取值
- request.getParameter()与request.setAttribute()的区别