剑指offer--两个栈实现队列
2017-05-04 16:13
253 查看
题目:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析:
栈和队列的弹出序列是相反的这个两个数据结构的性质有关,一个是先进先出,一个是先进后出.所以如果用两个栈,相当于把数据的顺序倒了两次最后使得起顺序和队列一样,这是原理很简单,但是如何实现呢,这里需要注意的点有两个:1. 弹出栈不为空不能向里面压入数据
2. 压入栈必须每次将所有的数据都压入弹出栈
import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } public int pop() { if(stack2.isEmpty()){ while(!stack1.isEmpty()){ stack2.push(stack1.pop()); } } return stack2.pop(); } }
相关文章推荐
- 剑指offer——用两个栈实现队列
- 剑指Offer(5)______用两个栈实现队列
- 剑指Offer面试题9:用两个栈实现队列
- 剑指offer---两个栈实现队列
- 剑指offer(4) 两个栈实现队列
- Python剑指offer之两个栈实现一个队列-两个队列实现一个栈
- 【剑指offer】两个栈实现一个队列 push pop
- 剑指offer-两个栈实现队列
- 剑指Offer [05] 用两个栈实现队列
- 剑指offer第5题,用两个栈实现队列
- 剑指offer-用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指Offer 7 用两个栈实现队列
- 【剑指offer】面试题9:用两个栈实现队列
- 【剑指offer】两个队列实现一个栈
- 剑指Offer学习总结-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 剑指offer——用两个栈实现队列
- 剑指offer---用两个栈实现队列
- 【剑指offer】用两个栈实现一个队列,用两个队列实现一个栈