LeetCode(232) Implement Queue using Stacks
2015-11-17 13:45
495 查看
题目
Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue.
pop() – Removes the element from in front of queue.
peek() – Get the front element.
empty() – Return whether the queue is empty.
Notes:
You must use only standard operations of a stack – which means only push to top, peek/pop from top, size, and is empty operations are valid.
Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
分析
用栈实现队列;只需要两个辅助栈,一个保存压入元素,一个保存弹出元素;当弹出元素栈空时,把所有入栈元素压入出栈;
AC代码
class Queue { public: // Push element x to the back of queue. void push(int x) { inStack.push(x); } // Removes the element from in front of queue. void pop(void) { if (outStack.empty()) { while (!inStack.empty()) { outStack.push(inStack.top()); inStack.pop(); } } outStack.pop(); } // Get the front element. int peek(void) { if (outStack.empty()) { while (!inStack.empty()) { outStack.push(inStack.top()); inStack.pop(); } } return outStack.top(); } // Return whether the queue is empty. bool empty(void) { if (outStack.empty() && inStack.empty()) return true; return false; } private: stack<int> inStack; stack<int> outStack; };
GitHub测试程序源码
相关文章推荐
- 400 Bad Request
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(三)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(三)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(三)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(二)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(二)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(二)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(一)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(一)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(一)
- SpannableStringBuilder.setSpan()的细节
- iOS 9 学习系列:UI Testing
- GUID 全局唯一标识符
- UIControl中的相关属性和方法
- ol元素及相关属性:type, start, value, 和reversed
- [Leetcode]Longest Increasing Subsequence
- request.getParameter()中文乱码
- 循环结构中break、continue、goto、return和exit的区别
- Handler Looper MessageQueue之MessageQueue
- Handler Looper MessageQueue之Handler