Implement Stack using Queues
2015-08-13 00:00
543 查看
Description:
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).
Solution:
class Stack { private: queue<int> q; public: // Push element x onto stack. void push(int x) { q.push(x); for (int i = 0; i < q.size()-1; ++i) { q.push(q.front()); q.pop(); } } // Removes the element on top of the stack. void pop() { q.pop(); } // Get the top element. int top() { return q.front(); } // Return whether the stack is empty. bool empty() { return q.empty(); } };
相关文章推荐
- could not build module 'uikit'
- Java集合类: Set、List、Map、Queue使用场景梳理
- uva 1152 4 Values whose Sum is 0
- 【UITextField与UITextView】
- 【UISegmentedControl】
- HDU 3397 Sequence operation(区间合并 + 区间更新)
- Request Parameters and Header Values
- [LeetCode]Permutation Sequence
- OC-UI部分,简单的登陆界面简单代码
- Domino Angular 前端UI开发
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- DCIM 用 UIScrollView 和UIPageControl
- js实现EasyUI-datagrid前台分页
- Leetcode63 Unique Paths II
- UIPageControl
- UI 06 _ 7种手势
- 消息队列(message queue)产生的背景、常用的技术
- hdu 1297 Children’s Queue(递推和高精)
- IOS--UI--NSThread 和GCD 总结
- Design Pattern -- Builder