【LintCode】用栈实现队列
来源:互联网 发布:外汇模拟软件app 编辑:程序博客网 时间:2024/06/05 18:57
描述
正如标题所述,你需要使用两个栈来实现队列的一些操作。
队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。
pop和top方法都应该返回第一个元素的值。
样例
比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2
思路
s1是入栈的,s2是出栈的。
- 入队列:直接压入s1即可
- 出队列:如果s2不为空,把s2中的栈顶元素直接弹出;否则,把s1的所有元素全部弹出压入s2中,再弹出s2的栈顶元素
代码
<span style="font-size:18px;">public class Queue { private Stack<Integer> stack1; private Stack<Integer> stack2; public Queue() { // do initialization if necessary stack1=new Stack<Integer>(); stack2=new Stack<Integer>(); } public void push(int element) { // write your code here stack1.push(element); } public int pop() { // write your code here if(stack2.empty()) while(!stack1.empty()){ int s1=stack1.pop(); stack2.push(s1); } return stack2.pop(); } public int top() { // write your code here if(stack2.empty()) while(!stack1.empty()){ int s1=stack1.pop(); stack2.push(s1); } int s2=stack2.peek();//这里只是返回第一个元素的值,并没有弹出第一个元素 //Java中返回堆栈顶的值用peek ,C++用top return s2; }}</span>
0 0
- Lintcode 用栈实现队列
- LintCode:用栈实现队列
- 【LintCode】用栈实现队列
- LintCode : 用栈实现队列
- lintcode,用栈实现队列
- Lintcode 用栈实现队列
- Lintcode 用栈实现队列
- lintcode-用栈实现队列-40
- [Lintcode]用栈实现队列
- LintCode 40 用栈实现队列
- [LintCode]40.用栈实现队列
- LintCode之40 用栈实现队列
- LintCode-剑指Offer-(40)用栈实现队列
- 用栈实现队列
- 用队列实现栈
- 用栈实现队列
- 用队列实现栈
- 用栈实现队列
- 编程笔试题 之 字符打印
- 移动社群电商,伪命题还是真趋势?
- ButterKnife基本使用
- [Android]之一:Android系统下载管理DownloadManager
- Markdown语法简介
- 【LintCode】用栈实现队列
- 仿网易评论加载动画
- 指定位置签到-百度地图
- mongodb 连接 不能即时 释放
- iOS开发问题:系统提示框是否同意获取当前位置提示框自动消失问题
- (四)Jetson TK1上安装ZED SDK
- OS 64)指定的网络名不再可用 : winnt_accept: Asynchronous AcceptEx failed.
- 机房---三
- 语音增强算法总结