实现两个栈模拟队列
实现两个栈模拟队列
思路:可以想象一下左手和右手,两个栈:stack1(数据所在的栈) ,stack2(临时存放)。
入队:需要将入队 num 加在 stack1 的栈顶即可;
出队:这个就会麻烦点,需要用到临时栈stack2。先将 stack1中的所有元素放到 stack2中,再把stack2的顶部元素弹出一个,再把 stack2中的元素放回到stack1中,切记!不要忘了把stack2中的元素放回到stack1中!!!
代码如下:
import java.util.Scanner;
import java.util.Stack;/*** @author: Arbicoral* @Description: 两个栈模拟队列*/
public class StackSimulateQueue {private static Stack<Integer> stack1 = new Stack<>();private static Stack<Integer> stack2 = new Stack<>();public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入要入队列的数(以-1结束):");while (true){if (sc.hasNextInt()){int next = sc.nextInt();if (next == -1){break;} else {stack1.push(next);}}}// 测试StackSimulateQueue ssq = new StackSimulateQueue();ssq.print();// 打印当前队列中的值ssq.push(356);//入队ssq.poll();//出队ssq.print();ssq.poll();ssq.poll();ssq.print();ssq.poll();ssq.print();ssq.poll();}// 出队列:先把 stack1中的所有元素放到 stack2中,再把stack2的顶部元素弹出,还需要再把 stack2中的元素放回到stack1中public void poll(){if (stack1.isEmpty()){System.out.println("队列中空空如也~~");}while (!stack1.isEmpty()){stack2.push(stack1.pop());}System.out.println("出队:" + stack2.pop());while (!stack2.isEmpty()){stack1.push(stack2.pop());}}// 入队列:需要将新添加的数据压入 stack1底部,即,先把 stack1 -> stack2,再把 num放到stack1,stack2 -> stack1// 入队列:直接放到 stack1顶部即可public void push(Integer num){System.out.println("入队:" + num);stack1.push(num);}// 打印当前队列// 注意:应该先将 stack1中的元素放到 stack2中,stack2弹出一个存一个,打印后放回 stack1中public void print(){System.out.print("当前队列中有:");while (!stack1.isEmpty()){stack2.push(stack1.pop());}// 放回stack1while (!stack2.isEmpty()){int temp = stack2.pop();System.out.print(temp + "\t");stack1.push(temp);}System.out.println();}
}
示例:
输入:12 32 53 67 2 5 7 -1
输出:
相关文章:
实现两个栈模拟队列
实现两个栈模拟队列 思路:可以想象一下左手和右手,两个栈:stack1(数据所在的栈) ,stack2(临时存放)。 入队:需要将入队 num 加在 stack1 的栈顶即可; 出队&am…...
无涯教程-TensorFlow - 单词嵌入
Word embedding是从离散对象(如单词)映射到向量和实数的概念,可将离散的输入对象有效地转换为有用的向量。 Word embedding的输入如下所示: blue: (0.01359, 0.00075997, 0.24608, ..., -0.2524, 1.0048, 0.06259) blues: (0.01396, 0.11887, -0.48963, ..., 0.03…...
Facebook AI mBART:巴别塔的硅解
2018年,谷歌发布了BERT(来自transformers的双向编码器表示),这是一种预训练的语言模型,在一系列自然语言处理(NLP)任务中对SOTA结果进行评分,并彻底改变了研究领域。类似的基于变压器…...
BDA初级分析——SQL清洗和整理数据
一、数据处理 数据处理之类型转换 字符格式与数值格式存储的数据,同样是进行大小排序, 会有什么区别? 以rev为例,看看字符格式与数值格式存储时,排序会有什么区别? 用cast as转换为字符后进行排序 SEL…...
汽车后视镜反射率测定仪
后视镜是驾驶员坐在驾驶室座位上直接获取汽车后方、侧方和下方等外部信息的工具。它起着“第三只眼睛”的作用。后视镜按安装位置划分通常分为车外后视镜、监视镜和内后视镜。外后视镜观察汽车后侧方监视镜观察汽车前下方内后视镜观察汽车后方及车内情况。用途不一样镜面结构也…...
Redis学习笔记
redis相关内容 默认端口6379 默认16个数据库,初始默认使用0号库 使用select 切换数据库 统一密码管理,所有库密码相同 dbsize:查看当前库key的数量 flushdb:清空当前库 flushall:清空全部库 redis是单线程 多路…...
韩顺平Linux 四十四--
四十四、rwx权限 权限的基本介绍 输入指令 ls -l 显示的内容如下 -rwxrw-r-- 1 root 1213 Feb 2 09:39 abc0-9位说明 第0位确定文件类型(d , - , l , c , b) l 是链接,相当于 windows 的快捷方式- 代表是文件是普通文件d 是目录,相…...
【支付宝小程序】分包优化教程
🦖我是Sam9029,一个前端 Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-JS学习,CSS学习,Vue-2领域博主 🐱🐉🐱🐉恭喜你,若此文你认为写的不错,不要吝啬你的赞扬,求收…...
语言基础2 矩阵和数组
语言基础2 矩阵和数组 矩阵和数组是matlab中信息和数据的基本表示形式 可以创建常用的数组和网格 合并现有的数组 操作数组的形状和内容 以及使用索引访问数组元素 用到的函数列表如下 一 创建 串联和扩展矩阵 矩阵时按行和列排列的数据元素的二维数据元素的二维矩…...
springMVC中过滤器抛出异常,自定义异常捕获
在过滤器中引入org.springframework.web.servlet.HandlerExceptionResolver AutowiredQualifier("handlerExceptionResolver")private HandlerExceptionResolver resolver; // doFilter中处理if (条件1) {if (条件2) {resolver.resolveException(request, response, …...
图像检索技术研究:深度度量与深度散列在相似性学习中的应用比较与实践 - 使用Python与Jupyter环境
引言 在计算机视觉领域,图像检索是一个长期存在并持续受到研究者关注的重要话题。随着大数据时代的到来,如何高效、准确地从海量数据中检索到相似的图像成为一个巨大的挑战。传统的检索方法在大数据环境下表现不佳,而深度学习技术的崛起为图…...
CSS加载失败的6个原因
有很多刚刚接触 CSS 的新手有时会遇到 CSS 加载失败这个问题,但测试时,网页上没有显示该样式的问题,这就说明 CSS 加载失败了。出现这种状况一般是因为的 CSS 路径书写错,或者是在浏览器中禁止掉了 CSS 的加载,可以重新…...
react之路由的安装与使用
一、路由安装 路由官网2021.11月初,react-router 更新到 v6 版本。使用最广泛的 v5 版本的使用 npm i react-router-dom5.3.0二、路由使用 2.1 路由的简单使用 第一步 在根目录下 创建 views 文件夹 ,用于放置路由页面 films.js示例代码 export default functio…...
基于RoCE的应用程序的MTU注意事项
目录 基于RoCE的应用程序的MTU注意事项 探测网络中的MTU设置 概要 原文 MTU测试结果 DOC: CentOS安装tshark抓包工具 基于RoCE的应用程序的MTU注意事项 原文:https://support.mellanox.com/s/article/MLNX2-117-1682kn InfiniBand协议最大传输单元ÿ…...
springboot集成Graphql相关问题汇总
1、idea在debug运行时出现java.lang.NoClassDefFoundError:kotlin/collections/AbstractMutableMap 解决:禁用idea dubugger中kotlin coroutine agent 见:https://stackoverflow.com/questions/70796177/after-the-spring-boot-source-code-is-compile…...
Angular16的路由守卫基础使用
Angular16的路由守卫基础使用 使用ng generate guard /guard/login命令生成guard文件因新版Angular取消了CanActivate的使用,改用CanActivateFn,因此使用router跳转需要通过inject的方式导入。 import { inject } from angular/core; import { CanActi…...
leetcode228. 汇总区间
题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b]…...
删除有序链表中重复的元素-II(链表)
乌!蒙!山!连!着!山!外!山! 题目: 思路: 双指针,slow和fast,并且增加标记flag初始为1。 如果slow指向节点值等于fast指向节点值&…...
element单独检验form表单中的一项
<el-form-item prop"limitDays" style"margin-left: 5px;"><el-input v-model"ruleForm.limitDays" placeholder"天数" style"width: 100px;" /> </el-form-item> <el-form-item prop"limitCount…...
Webpack node、output.jsonpFunction 配置详解
Webpack node、output.jsonpFunction 配置详解 最近尝试给一些用到 webpack 的项目升级到最新 webpack5 版本,其中遇到了一些问题,我挑了两个比较典型的问题,其中主要涉及到了 webpack 的 node 属性跟 output.jsonpFunction (web…...
ArcGIS实战:手把手教你拼接与裁剪全国10米建筑高度栅格数据(以武汉为例)
ArcGIS实战:全国10米建筑高度栅格数据的精准处理与武汉应用 引言:高精度建筑数据的价值与挑战 城市规划师李明最近在武汉某旧城改造项目中遇到了棘手问题——传统30米分辨率的建筑高度数据无法准确反映老城区复杂的建筑形态差异。当他尝试获取更高精度的…...
Page Assist终极指南:在浏览器侧边栏中运行本地AI助手的完整教程
Page Assist终极指南:在浏览器侧边栏中运行本地AI助手的完整教程 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist Page Assist是一款革…...
阿里云百炼 + OpenClaw 打造超强自动化 AI
前置准备 已安装并可正常打开 OpenClaw Windows 版本 OpenClaw 部署包获取:https://xiake.yun/api/download/package/14?promoCodeIVD643FDE29AOpenClaw 顶部 Gateway 状态显示为在线准备好可正常登录的阿里云账号可正常访问阿里云百炼控制台地址确认账号已开通百…...
别再只当扫码枪用了!用Python+GM861S模块,DIY一个智能物料盘点小工具
用PythonGM861S模块打造智能物料盘点系统 在仓库管理和生产制造场景中,物料盘点是项耗时又容易出错的工作。传统扫码枪往往只作为简单数据采集工具,而结合Python编程能力,我们可以将GM861S这类高性能扫码模块升级为智能终端。这个项目将展示如…...
Adafruit Bluefruit Playground:iOS与蓝牙开发板的物联网交互实战
1. 项目概述与核心价值 如果你手头有一块Adafruit的Circuit Playground Bluefruit或者CLUE开发板,想让它在你的iPhone或iPad上“活”起来,变成一个能远程控制彩灯、读取传感器数据甚至演奏音乐的智能玩具,那么Adafruit Bluefruit Playground …...
Power Query处理月度报表,遇到数据有null怎么办?详解【标准】运算与自定义列的计算逻辑差异
Power Query空值处理实战:标准运算与自定义列的计算逻辑深度解析 财务总监Lisa盯着屏幕上满是错误标记的月度汇总报表,眉头紧锁。她刚刚用Power Query合并了六个部门的销售数据,却发现总金额列出现了大量意料之外的null值——这直接导致季度预…...
别再手动画UML了!用IDEA Diagrams插件自动生成类关系图,附赠符号含义速查表
高效架构可视化:IDEA Diagrams插件全指南与UML符号解析 在软件开发过程中,清晰的架构设计是团队协作和代码维护的基石。传统的手绘UML类图不仅耗时费力,更难以与快速迭代的代码保持同步。JetBrains IDEA内置的Diagrams插件正是为解决这一痛点…...
Neovim AI编程助手codecompanion.nvim:无缝集成与高效开发实践
1. 项目概述:一个为Neovim而生的AI编程伴侣如果你和我一样,是个深度依赖Neovim进行日常开发的程序员,那么你一定经历过这样的时刻:面对一段复杂的逻辑,需要反复查阅文档;或者写一个函数时,卡在某…...
本事同根生,相煎何太急
简 介: 【轮腿组比赛难度调整建议】针对智能车竞赛轮腿穿越组室外赛道的视觉识别难题,参赛选手提出以下建议:1.科目三元素应避开塑胶跑道线干扰区域;2.当前轮腿组任务量(机械、控制、导航、视觉等)已远超往…...
深入解析浮点数内存存储与IEEE 754标准:从0.1+0.2≠0.3说起
1. 从一次“诡异”的计算错误说起前几天,一个刚入行的同事跑来找我,一脸困惑地给我看了一段Python代码。他写了个简单的循环累加,想计算0.1加10次,理论上应该等于1.0。但打印出来的结果却是0.9999999999999999。他反复检查了代码&…...
