剑指offer--用两个栈实现队列
来源:互联网 发布:网络彩票开售时间 编辑:程序博客网 时间:2024/06/05 18:48
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { while(!stack2.empty()){ stack1.push(stack2.pop()); } stack1.push(node); while(!stack1.empty()){ stack2.push(stack1.pop()); } } public int pop() { return stack2.pop(); }}
我的思路是两个栈,其中一个元素保持和队列的元素顺序一样,每次出栈的时候就和队列的出队顺序一样,但是在入队的时候因为栈提供的api只能从栈顶插入,所以此时我们需要使用到另一个栈作为中间的存储空间,将前一个栈的元素放进去,再将新元素入栈。最后再将中间栈里的元素出栈之后,放入开始当做队列的那个栈里面。
阅读全文
0 0
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指offer|用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer----用两个栈实现队列
- Netty-socketio中判断SocketIOClient是否仍然连接
- VMware虚拟磁盘编程指导(五)
- BZOJ 1026 (数位dp)
- 计算机的投资:量化投资
- 求1到100所有的质数
- 剑指offer--用两个栈实现队列
- python基础语言之assert
- 基于深度学习的大规模多标签文本分类任务总结
- opencv 14 OCR 分段字识别(segmented_word_recognition) vs2015
- 共享单车之后共享KTV迅速走红
- BZOJ1477 青蛙的约会 [扩展欧几里得]
- Z-Wave、NFC、LiFi等无线短距离通信技术TOP10
- IFE-TASK38(任务三十八:UI组件之排序表格)
- Ordered和Ordering的区别