LeetCode 232 Implement Queue using Stacks(利用栈实现队列)
来源:互联网 发布:软件部署实施方案 编辑:程序博客网 时间:2024/06/08 07:38
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.
- You must use only standard operations of a stack -- which means only
push to top
,peek/pop from top
,size
, andis 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).
题目大意:利用栈实现队列的push、pop、peek和empty操作。
解题思路:用两个栈s1和s2,入队操作在s1上进行,出队时先检查s2是否为空,如果s2为空,则将s1中的元素压入s2中;如果s2不为空,则直接弹出s2的栈顶元素。
代码如下:
class MyQueue {public: /** Initialize your data structure here. */ MyQueue() { while(s1.size() || s2.size()){ s1.pop(); s2.pop(); } } /** Push element x to the back of queue. */ void push(int x) { s1.push(x); } /** Removes the element from in front of queue and returns that element. */ int pop() { int tmp = MyQueue::peek(); s2.pop(); return tmp; } /** Get the front element. */ int peek() { if(s2.empty()){ while(s1.size()){ s2.push(s1.top()); s1.pop(); } } int tmp = s2.top(); return tmp; } /** Returns whether the queue is empty. */ bool empty() { return s1.empty() && s2.empty(); }private: stack<int> s1; stack<int> s2;};
阅读全文
0 0
- LeetCode 232 Implement Queue using Stacks(利用栈实现队列)
- LeetCode(23)-Implement Queue using Stacks(栈实现队列)
- LeetCode Implement Queue using Stacks 栈&队列
- [LeetCode-232] Implement Queue using Stacks(两个栈实现一个队列)
- leetcode 232. Implement Queue using Stacks 双栈实现队列
- LeetCode学习之-232. 利用堆栈实现队列(Implement Queue using Stacks)
- 队列-Implement Queue using Stacks(用栈实现队列)
- Implement Queue using Stacks(用栈实现队列)
- 232. Implement Queue using Stacks (用栈实现队列)
- LeetCode 232 Implement Queue using Stacks(用栈来实现队列)(*)
- LeetCode OJ 之 Implement Queue using Stacks(使用栈实现队列)
- LeetCode 232. Implement Queue using Stacks(用栈实现队列)
- LeetCode(232) Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks-栈模拟队列
- (LeetCode)Implement Queue using Stacks --- 实现队列和栈第一部分,队列
- Implement Queue using Stacks 用俩栈实现队列
- 232.Implement Queue using Stacks(用栈实现队列)
- Implement Queue using Stacks 两个栈实现队列
- 利用边框制作三角形
- python和java中斜杠的写法及区分
- PAT 1008数组元素循环右移
- raspberry pi 2安装rtl8811/ 8821网卡驱动
- 极乐小程序榜单(第三期)
- LeetCode 232 Implement Queue using Stacks(利用栈实现队列)
- 编程实现删除字符串中所有指定的字符
- CCF201312-2 ISBN号码
- 两张图片合成
- char,short ,int ,long,long long,unsigned long long数据范围
- MTK GPIO操作
- 洛谷 P1879 [USACO06NOV]玉米田Corn Fields
- Redux(2)路由
- 2010 ACM/ICPC 福州赛区 Problem H(贪心)