LeetCode *** 225. Implement Stack using Queues
2016-04-09 17:24
316 查看
题目:
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
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).
Update (2015-06-11):
The class name of the Java function had been updated to
MyStack instead of Stack.
分析:
利用queue扩展stack,用一个queue,然后用一个int数组来记录queue的值就可以了。
代码:
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 emptyoperations 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).
Update (2015-06-11):
The class name of the Java function had been updated to
MyStack instead of Stack.
分析:
利用queue扩展stack,用一个queue,然后用一个int数组来记录queue的值就可以了。
代码:
class Stack { queue<int> myQ; public: // Push element x onto stack. void push(int x) { int size=myQ.size(); int *tmp=new int[size]; for(int i=0;i<size;++i){ tmp[i]=myQ.front(); myQ.pop(); } myQ.push(x); for(int i=0;i<size;++i) myQ.push(tmp[i]); } // Removes the element on top of the stack. void pop() { myQ.pop(); } // Get the top element. int top() { return myQ.front(); } // Return whether the stack is empty. bool empty() { return myQ.empty(); } };
相关文章推荐
- J2EE中getParameter与getAttribute以及EL表达式${requestScope}和${param[]}
- VC读写txt文件时提示unrecognized character escape sequence(无法识别的字符转移序列)
- IOS开发UI系列之常用控件 UILabel, UITextField, UIButton, UIImageView等常用属性与方法
- UITextField点击return后注销第一响应者
- 代码篇——Easyui的formatter实现超链接跳转页面
- android学习第四天,其他UI控件
- iOS之UITabBar 的相关属性
- android 在线程中调用handle更新UI
- 使用runOnUiThread解决Handler无法调用含用子线程方法的问题
- Android Recovery Ui 分析
- UIImage的scale
- java中的Stack和Queue之间用法解释,还有heap
- LeetCode 187. Repeated DNA Sequences
- 232. Implement Queue using Stacks
- Range Sum Query - Immutable
- 代码篇——EasyUI中DataGrid选中多行提交和删除
- arduino随笔(2)
- QNX 实时操作系统(Quick Unix)
- Qt Quick实现的疯狂算数游戏
- Caligari TrueSpace