算法:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
算法:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。《剑指offer》
利用栈来进行操作,代码注释写的比较清楚:首先判断两个栈是否是空的:其次当栈二 为空,将栈1中取出来放到栈二,最终返回栈二首部值;
主要利用了pop()方法和push方法:
package LG.nowcoder; /**
* @Author liguo
* @Description 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
* @Data 2018-08-11 21:50
*/ import java.util.Stack;
public class Solution1 {
Stack <Integer> stack1 = new Stack <Integer>();
Stack <Integer> stack2 = new Stack <Integer>(); public void push(int node) {
stack1.push( node ); //直接入栈
} public int pop() {
if (stack1.empty() && stack2.empty()) { //判断栈为空
throw new RuntimeException( "空的链表" );
}
if (stack2.empty()) { //当第二个栈非空时,复制第一个栈到第二个栈
while (!stack1.empty()) {
stack2.push( stack1.pop() );
}
}
return stack2.pop(); //返回第二个栈顶
}
}
算法:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。的更多相关文章
- 剑指offer5:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
1. 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 2. 思想 (1)栈的特点是先进后出,而队列的特点是先进先出: (2)因此,入队列的情况和入栈的情 ...
- 【算法】用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer&g ...
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
// test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- java基础编程——用两个栈来实现一个队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题目代码 /** * <分析>: * 入队:将元素进栈A * 出队:判断栈B是否为空, * ...
- 面试题9-用两个栈来实现一个队列,完成队列的Push和Pop操作
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路: 一个栈压入元素,而另一个栈作为缓冲,将栈1的元素出栈后压入栈2中 代码 import java.ut ...
- 剑指offer-用两个栈来实现一个队列-队列与栈-python
用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路:使用两个栈,stackA 用来接收node stackB 用来接收 stackA 的出栈 # -*- cod ...
- 5、利用两个栈实现队列,完成push和pop操作
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路: 1.一个栈用来做push 2.另一个栈用来做pop 3.将push操作的栈的元素放入另一个栈中, ...
- 两个栈来实现一个队列的C++代码
利用两个栈来实现一个队列, 这个问题非经常见. 最关键的是要有好的思路, 至于实现, 那是非常easy的事情了. 在本文中, 也想说说自己的思路, 可是. 我认为用代码来表述思路更符合我的习惯. 也 ...
- 【转】java中byte数组与int类型的转换(两种方式)----不错
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...
随机推荐
- odoo开发笔记--取消正在升级中模块
场景描述: 开发过程中,有时候会遇到,模块安装的时候,一直卡着,走不过去:或者安装报错,导致进入了系统! 这个时候,怎么处理呢? 先简单说下,odoo中模块的升级有4个状态,模块相关的安装情况记录在表 ...
- 《JQuery技术内幕》读书笔记——自调用匿名函数剖析
Javascript语言中的自调用匿名函数格式如下: (function(){ //do somethings })(); 它还有另外两种等价写法如下: //等价写法一 (function(){ // ...
- 微信小程序内嵌业务域名内的网页
微信小程序在2017年11月左右开放了内嵌网页的功能,即新组件<web-view>.官方文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/com ...
- C++版 - 剑指offer 面试题5:从尾到头打印链表 题解
面试题5:从尾到头打印链表 提交网址: http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tq ...
- [Shell]Shell调用并获取执行jar包后的返回值
----------------------------------------------------------------- 原创博文,如需转载请注明出处! 博主:疲惫的豆豆 链接:http:/ ...
- java-vip介绍
大叔Springboot+微服务+持续集成和交付VIP(价格:5000元) springboot部分 微服务部分 持久集成和交付部分 springboot部分 视频课(10讲) 项目源代码(api r ...
- springboot情操陶冶-@Conditional和@AutoConfigureAfter注解解析
承接前文springboot情操陶冶-@Configuration注解解析,本文将在前文的基础上阐述@AutoConfigureAfter和@Conditional注解的作用与解析 1.@Condit ...
- Java——this关键字
前言 this关键字属于Java中比较复杂的关键字之一,若是学习过C++或者其他的一些面向对象语言也会遇到this这个关键字并且都会看到this的含义就是表示当前对象.什么叫做表示当前对象?this在 ...
- Spring的@Transactional事务注意事项
1.@Transactional应该放在方法级别,不需要使用事务的方法,就不要放置事务,2.查询方法声明不要事务,否则对性能是有影响的.3.对同一个类里的方法调用, @Transactional无效 ...
- python安装Jieba中文分词组件并测试
python安装Jieba中文分词组件 1.下载http://pypi.python.org/pypi/jieba/ 2.解压到解压到python目录下: 3.“win+R”进入cmd:依次输入如下代 ...