LeetCode232 Implement Queue using Stacks Java 题解
来源:互联网 发布:新手效果图制作软件 编辑:程序博客网 时间:2024/06/06 13:00
题目:
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).
解题:
用栈实现队列,这个比用队列实现栈要麻烦一些,这里用到两个栈,两种思路,第一种就是在进栈的时候,把栈逆序放在另外一个栈,出的时候直接出另外一个栈就可以了。第二种思路,进栈的时候不做任何处理,出栈的时候把栈逆序放在另外一个栈,出另外一个栈。下面就是两种的代码实现。
在进栈的时候进行处理:
class MyQueue { // Push element x to the back of queue.Stack<Integer> stack=new Stack<>();Stack<Integer> stack2=new Stack<>(); public void push(int x) { while(!stack.isEmpty()) { stack2.push(stack.pop()); } stack2.push(x); while(!stack2.isEmpty()) { stack.push(stack2.pop()); } } // Removes the element from in front of queue. public void pop() { stack.pop(); } // Get the front element. public int peek() { return stack.peek(); } // Return whether the queue is empty. public boolean empty() { return stack.isEmpty(); }}在出栈的时候进行处理:
class MyQueue2 { // Push element x to the back of queue.Stack<Integer> stack=new Stack<>();Stack<Integer> stack2=new Stack<>(); public void push(int x) { while(!stack2.isEmpty()) stack.push(stack2.pop()); stack.push(x); } // Removes the element from in front of queue. public void pop() { while(!stack.isEmpty()) stack2.push(stack.pop()); stack2.pop(); } // Get the front element. public int peek() { while(!stack.isEmpty()) stack2.push(stack.pop()); return stack2.peek(); } // Return whether the queue is empty. public boolean empty() { while(!stack2.isEmpty()) stack.push(stack2.pop()); return stack.isEmpty(); }}
0 0
- LeetCode232 Implement Queue using Stacks Java 题解
- LeetCode232:Implement Queue using Stacks
- leetcode232 Implement Queue using Stacks
- LeetCode232. Implement Queue using Stacks
- Leetcode232. Implement Queue using Stacks
- leetcode232. Implement Queue using Stacks
- LeetCode232——Implement Queue using Stacks
- LeetCode232—Implement Queue using Stacks
- Leetcode232. Implement Queue using Stacks[栈实现队列]
- (java)Implement Queue using Stacks
- LeetCode题解:Implement Queue using Stacks
- LeetCode 题解(190): Implement Queue using Stacks
- Leetcode题解 232. Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- libxml的使用(1)--读取xml
- OpenCV3.0.0API文档中英文对照
- jQeury入门:操作元素 Manipulating Elements
- android:imeOptions
- 设计模式之适配器模式(Adapter Pattern)C++实现
- LeetCode232 Implement Queue using Stacks Java 题解
- GRE写作必备句型
- Eclipse+Java+OpenCV246环境搭建和代码测试
- libxml的使用(2)--编辑节点
- 欢迎使用CSDN-markdown编辑器
- vim快捷键操作
- GCC在C语言中内嵌汇编 asm __volatile__
- SVN各种问题详解
- ubuntu下登陆学校的校园网