算法:用两个栈来实现一个队列,完成队列的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类型的转换,在网络编程中这个算法是最基本的算法, ...
随机推荐
- 使用 IdentityServer4 实现 OAuth 2.0 与 OpenID Connect 服务
IdentityServer4 是 ASP.NET Core 的一个包含 OIDC 和 OAuth 2.0 协议的框架.最近的关注点在 ABP 上,默认 ABP 也集成 IdentityServer4 ...
- Linux编程 12 (默认shell环境变量, PATH变量重要讲解)
一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash shell支持的Bourne变量 Bo ...
- android项目架构 -----Android 知识体系与常用第三方框架
好东西值得分享 ,这是网络上总结的一些开源的东西直接就拿过来了 .... Android通用流行框架大全 先把这张图放在这 ,先来谈一谈项目结构 .我喜欢将东西按模块来划分: 都知道module . ...
- java--uploadify3.1多文件上传
使用uploadify时,建议下载uploadify3.1文档.边做边看. 这是页面端: <label style="color:#15428B;font-weight:bold;&q ...
- Tomcat他山之石.可以攻玉(一)Server组件
Server组件 Server组件作用: 采用观察者模式,又叫源-收听者的设计模式,提供了可以动态添加.删除的监听器,作用是在Server组件的不同生命周期中完成不同的功能.逻辑: Tomcat容器的 ...
- 纯JS实现加载更多(VUE框架)
<template> <div class = 'car_list' reft='scrollobx' @scroll='scrollready($event)'> </ ...
- 给HTML页面指定元素添加属性,添加父元素
给HTML页面指定元素添加属性,添加父元素 下面拿一个给富文本中所有的图片增加layer弹窗效果. 思路: 给富文本父元素设置属性. 获取父元素里所有的img 此处用到querySelectorA ...
- httpd htpasswd命令
apache httpd系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html htpasswd用于为指定用户生成基于网页用户身份认证的密码,由h ...
- YARN集群的mapreduce测试(三)
将user表.group表.order表关:(类似于多表关联查询) 测试准备: 首先同步时间,然后 开启hdfs集群,开启yarn集群:在本地"/home/hadoop/test/" ...
- [Linux] deepin15.8搭建LNMP环境
LAMP和LNMP LAMP==Linux+Apache+Mysql+PHP LNMP==Linux+Nginx+Mysql+PHP 安装nginx sudo apt install nginx 安装 ...