文章目录
- Leetcode 232.用栈实现队列
- 解题思路
- 代码
- 总结
- Leetcode 225. 用队列实现栈
- 解题思路
- 代码
- 总结
- stack、queue和deque对比
草稿图网站
java的Deque
Leetcode 232.用栈实现队列
题目:232.用栈实现队列
解析:代码随想录解析
解题思路
一个栈负责进,一个栈负责出
代码
class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue() {stackIn = new Stack<>();stackOut = new Stack<>();}public void push(int x) {stackIn.push(x);}public int pop() {dumpStackIn();return stackOut.pop();}public int peek() {dumpStackIn();return stackOut.peek();}public boolean empty() {if (stackOut.isEmpty() && stackIn.isEmpty())return true;return false;}public void dumpStackIn(){if (!stackOut.isEmpty())return;while(!stackIn.isEmpty()){stackOut.push(stackIn.pop());}}
}/*** Your MyQueue object will be instantiated and called as such:* MyQueue obj = new MyQueue();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.peek();* boolean param_4 = obj.empty();*/
总结
暂无
Leetcode 225. 用队列实现栈
题目:225. 用队列实现栈
解析:代码随想录解析
解题思路
每次使用一个辅助队列来存储后入元素,然后把队列元素插入辅助队列中,再对换索引。
代码
class MyStack {Queue<Integer> queue1;Queue<Integer> queue2;public MyStack() {queue1 = new LinkedList<>();queue2 = new LinkedList<>();}public void push(int x) {queue2.offer(x);while(!queue1.isEmpty()){queue2.offer(queue1.poll());}Queue<Integer> queueTmp = queue1;queue1 = queue2;queue2 = queueTmp;}public int pop() {return queue1.poll();}public int top() {return queue1.peek();}public boolean empty() {return queue1.isEmpty();}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/
总结
暂无
stack、queue和deque对比