题目描述

  用两个栈实现队列
  

思路分析

  1. 栈--> 先进后出 队列--> 先进先出
  2. 进队列操作,选择栈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();
}
}

代码链接

剑指Offer代码-Java

最新文章

  1. WebP 原理和 Android 支持现状介绍(转)
  2. paper 95:《模式识别和机器学习》资源
  3. SqlServer数据文件增长也很快,到底是哪些表增长造成的呢?
  4. (CentOS) 程序安装包管理:yum
  5. Scala语言初识
  6. java.util.HashMap源码分析
  7. android下获取无线wif信号、ssid、MAC等操作类
  8. NOT NULL constraint faile(慢就是快,少即是多)
  9. 第一次c++作业小结
  10. 蘑菇街支付架构 PDF 下载
  11. UVa 11077 Find the Permutations (计数DP)
  12. POJ 2643
  13. pandas 初识(三)
  14. hadoop集群操作常用命令
  15. 简单说明一下JS中的函数声明存在的“先使用,后定义”
  16. 连接数据库通过配置文件app.config
  17. C++按行读取和写入文件
  18. hadoop生态搭建(3节点)-08.kafka配置
  19. Ubuntu下libpcap安装步骤
  20. jqgrid扩展 获取表单数据

热门文章

  1. Docker 的另外两个话题: DockerHub 和 容器网络
  2. java支付宝app支付-代码实现
  3. exe、dos、bat等静默运行,后台运行,不弹窗的解决办法
  4. spring cloud 断路器 Hystrix
  5. web小知识点
  6. 搭建nuget 服务器
  7. Spring Cloud Stream 核心概念
  8. Groovy语法基础
  9. 多渠道推广场景下,如何实现 App 用户增长的精准归因?
  10. Redis缓存,持久化,高可用