LeetCode :232. Implement Queue using Stacks(剑指offer面试题)
来源:互联网 发布:vb中boolean 编辑:程序博客网 时间:2024/06/03 14:21
问题描述:
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).
队列:先进先出
堆栈:后进先出
定义两个栈stack1、stack2,新元素进队列时,任选一个堆栈(这里选stack1),出队列时,要出最先进入队列的元素,由于队列式先进先出,所以要把stack1中已有的元素依次出栈,在进栈放入stack2,。
注意点:新元素进队列选取的stack1,则当stack2不为空是,stack2中的栈定元素必定是最先进入队列的元素,因此不论是出队列还是求队首元素,首先要判断stack2是否为空!!
AC代码:
class Queue {public: // Push element x to the back of queue. stack<int>stack1; stack<int>stack2; void push(int x) { stack1.push(x); } // Removes the element from in front of queue. void pop(void) { if(!stack2.empty()) stack2.pop(); else { while(!stack1.empty()) { int temp = stack1.top(); stack1.pop(); stack2.push(temp); } stack2.pop(); } } // Get the front element. int peek(void) { if(!stack2.empty()) return stack2.top(); else { while(!stack1.empty()) { int temp = stack1.top(); stack1.pop(); stack2.push(temp); } return stack2.top(); } } // Return whether the queue is empty. bool empty(void) { if(stack1.empty() && stack2.empty()) return true; else return false; }};
0 0
- LeetCode :232. Implement Queue using Stacks(剑指offer面试题)
- [LeetCode]232.Implement Queue using Stacks
- 【leetcode】232. Implement Queue using Stacks
- <LeetCode OJ> 232. Implement Queue using Stacks
- 232. Implement Queue using Stacks LeetCode
- Leetcode: 232. Implement Queue using Stacks(JAVA)
- leetcode 232. Implement Queue using Stacks
- LeetCode *** 232. Implement Queue using Stacks
- 【leetcode】232. Implement Queue using Stacks
- LeetCode 232. Implement Queue using Stacks
- Leetcode题解 232. Implement Queue using Stacks
- #leetcode#232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- Leetcode 232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- LeetCode-232.Implement Queue using Stacks
- 【leetcode】232. Implement Queue using Stacks
- [leetcode] 232. Implement Queue using Stacks
- spring quartz 集群 注意
- Linux下自动检测USB热插拔
- ?super T 和? extends T区别
- 又是新的一年, 回来是不是发现钥匙串里的证书都失效啦
- fflush
- LeetCode :232. Implement Queue using Stacks(剑指offer面试题)
- icon
- app过程点滴记录
- 你也来学设计模式 之简单工厂模式 Factory
- sun.misc.BASE64Decoder报错
- 在GCC和Visual Studio中使用hash_map
- freemarker从头开始(Maven构建)
- React Native 环境搭建攻略
- 01背包问题空间优化