【Offer】[9] 【用两个栈实现队列】
2024-10-06 11:11:40
题目描述
用两个栈实现队列
思路分析
- 栈--> 先进后出 队列--> 先进先出
- 进队列操作,选择栈s1进栈,关键在与实现出队列操作,要考虑到队列先进先出的性质,出队列时要将s1中的元素弹出并压入栈s2中,然后s2弹栈就可以保证先进先出的性质。
Java代码
public class Offer009 {
public static void main(String[] args) {
}
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()) {
if (stack1.isEmpty()) {
throw new IllegalStateException("队列为空");
} else {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
}
return stack2.pop();
}
}
代码链接
最新文章
- WebP 原理和 Android 支持现状介绍(转)
- paper 95:《模式识别和机器学习》资源
- SqlServer数据文件增长也很快,到底是哪些表增长造成的呢?
- (CentOS) 程序安装包管理:yum
- Scala语言初识
- java.util.HashMap源码分析
- android下获取无线wif信号、ssid、MAC等操作类
- NOT NULL constraint faile(慢就是快,少即是多)
- 第一次c++作业小结
- 蘑菇街支付架构 PDF 下载
- UVa 11077 Find the Permutations (计数DP)
- POJ 2643
- pandas 初识(三)
- hadoop集群操作常用命令
- 简单说明一下JS中的函数声明存在的“先使用,后定义”
- 连接数据库通过配置文件app.config
- C++按行读取和写入文件
- hadoop生态搭建(3节点)-08.kafka配置
- Ubuntu下libpcap安装步骤
- jqgrid扩展 获取表单数据