1512:用两个栈实现队列

C语言 用两个栈实现一个队列CPP源代码 自己写的代码,有详细的注释,供大家参考。 立即下载

题目1512:用两个栈实现队列

时间限制:1 秒

内存限制:128 兆

特殊判题:否

提交:701

解决:258

题目描述:

用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。

输入:

每个输入文件包含一个测试样例。
对于每个测试样例,第一行输入一个n(1<=n<=100000),代表队列操作的个数。
接下来的n行,每行输入一个队列操作:
1. PUSH X 向队列中push一个整数x(x>=0)
2. POP 从队列中pop一个数。

输出:

对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。

样例输入:
3
PUSH 10
POP
POP
样例输出:
10
-1




import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Stack;


public class S7 {

	static Stack<Integer> s1 = new Stack<Integer>();
	static Stack<Integer> s2 = new Stack<Integer>();
	
	public static void main(String[] args) throws FileNotFoundException {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream("S7.in"));
		System.setIn(in);
		Scanner cin = new Scanner(System.in);
		
		while (cin.hasNextLine()) {
			int lines = Integer.parseInt(cin.nextLine());
			for(int i=0; i<lines; i++){
				String s = cin.nextLine();
				process(s);
			}
		}
	}
	
	public static void process(String s){
		if(s.startsWith("PUSH")){
			String[] ss = s.split(" ");
			int val = Integer.parseInt(ss[1]);
			s1.push(val);		// 直接压栈即可
		}else if(s.startsWith("POP")){
			if(s2.isEmpty()){	// 如果s2为空,则把s1里的元素全部压到栈2中
				while(!s1.isEmpty()){
					s2.push(s1.pop());
				}
			}
			
			if(s2.isEmpty()){
				System.out.println("-1");
			}else{
				System.out.println(s2.pop());
			}
		}
	}
}



居然出现了 一共5个案例,通过5个,但总时间超时。

这样的提示,估计又是Java的原因吧。暂且不管了。

C语言用两个栈实现一个队列的功能 用量个栈实现一个队列,使其可以有进队和出队的操作。 立即下载

相关推荐

Cursor设置界面汉化保姆级教程:手把手教你修改JS文件实现中文界面(附避坑指南)

本文提供Cursor编辑器设置界面汉化的详细教程,从定位JS文件到安全修改实现中文界面,包含必备工具清单、文件路径指引和常见问题解决方案。通过手把手教学帮助用户轻松完成汉化,提升使用体验,特别适合不熟悉英文界面的开发者。

weixin_29007809的博客 1412

[数据结构] 用两个栈实现队列详解

在数据结构中,栈和队列是较为常见的两种数据结构。。那怎么用栈去实现队列呢?此问题在面试中也是高频出现的问题。本篇文章会给出详细解释。

weixin_67596609的博客 4507

【调试记录】GT ip跑aurora 64b66b协议

如果不用,会出现这种情况:自回环测试,数据收发ok.一旦和对方通信,对方接收的就是一堆乱码,因为GT链路发送数据不能是全1或全0,或者长时间的1或0.否则线路容易受到干扰,毕竟线速率10多G,用了加扰和解扰,就可以提高抗干扰能力。64B66B编码,数据输入是64bit,输出是66bit,所以这之间存在着2bit的带宽差,Gearbox 就是用来解决这种差异的,实现方式是:将66bit数据拿出来2bit先存入Gearbox,然后输出64bit.发送同步码或控制数据时,配置成2.2.4 加扰和解扰!

weixin_41246509的博客 1601

【c语言】两个栈实现一个队列

两个栈实现一个队列 核心思想:模拟出队列先进先出的数据结构 假设有两个栈input和output,input模拟栈的数据插入,当需要模拟出队列操作时,input栈中的A,B,C,D会按照D,C,B,A的顺序进入栈output。 只要output栈不为空,出队列操作就可以通过output的出栈操作来实现。 若output栈为空,则继续从input栈导入数据。 若两个栈都为空,即整个队列为空。 代码...

Catdeo的博客 6065

计算机国际会议中的proceedings、conference、paper、workshop、demo:如何区分与选择?

本文详细解析了计算机国际会议中的核心概念:Conference(会议)是学术交流的主舞台,Paper(论文)是研究成果的书面呈现,被接收后收录于Proceedings(会议论文集)。Workshop(研讨会)聚焦前沿细分领域,Demo(演示)则侧重系统与工具的可交互展示。文章为研究者根据自身阶段与工作类型,如何区分与选择投稿目标提供了实用指南。

weixin_29269441的博客 562

零基础DSP实战TMS320F28035:第九节,ADC比较器&EPWM

ADC比较器框图如下所示:-电压-----------------------------输出-电压A>电压B------------------ 1-电压A

sinat_30943509的博客 2535

C语言 | 如何用两个栈模拟队列

用两个栈,一个专门入数据,一个专门出数据 来模拟实现一个队列。

weixin_44212838的博客 2366

【四足机器人项目实战】四足机器人支撑腿反作用力规划之VMC解耦控制方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、基于模型的工作空间控制框图二、原理三、缺点 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对未简化的动力学模型规划反作用力+运动学模型雅可比+虚功原理规划关节扭矩方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、基于模型的工作空间控制框图 . . 二、原理 基于机器人的动力学模

qq_35635374的博客 6597

用两个栈实现一个队列【C语言】

问题描述: 考虑用两个栈实现队列这样的特殊结构 问题分析 提示:这里填写问题的分析: 例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。 解决方案: 提示:这里填写该问题的具体解决方案: 例如:新建一个 Message 对象,并将读取到

zypf_lover的博客 2165

【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏 2. ARMv8/v9 CPU/Cache 专栏 3. Linux ARM AMBA 总线 专栏 4. Trace32/DS-5 专栏。。。

CodingCos的博客 8241

【LangChain编程:从入门到实践】实现多模态代理

【LangChain编程:从入门到实践】实现多模态代理 关键词:LangChain, 多模态代理, 自然语言处理, 机器学习, 知识图谱, 对话系统, 代码生成, AI代理 1. 背景介绍 随着人工智

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 579

C语言 两个栈实现队列的操作

思路: 1,先初始化两个具有一定存储空间的空栈 2,把元素压入栈1,完成入队操作。由于栈是后进先出的,要实现队列的功能(即先进先出)必须借助另一个栈来实现 3,完成出队的操作,先把栈1的栈顶元素依次弹出并压入栈2,直到栈1的栈低元素。这样栈2中从栈顶到栈底的元素依次是压入栈1的顺序了。这样可以把栈2的元素依次弹出,实现了队列的出队操作。 4,如果,元素没有完全出队,而又有新元素要入队时。此...

weixin_40671425的博客 4866

卫朋:IPD流程落地——产品计划阶段拆解

IPD计划阶段拆解

产品线负责人 956

题目1512:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案

spkang的专栏 650

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

九度OJ1512:用两个栈实现队列

题目链接:http://ac.jobdu.com/problem.php?pid=1512 分析:题目要求用两个栈实现队列的操作,w

Amy的学习之路 772

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

题目1512:用两个栈实现队列-九度

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案

兵临城下 971

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

九度 1512 :用两个栈实现队列

题目来源:http://ac.jobdu.com/problem.php?pid=1512 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1327 解决:492 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。

Abner 981

九度oj 题目1512:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案例,打印所有pop操作中从队列

binyuapple的专栏 479

【九度】题目1512:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案

wangzq的专栏 1036

九度OJ_1512:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案

VivBin的博客 289
上一篇: 1385:重建二叉树 @jobdu
下一篇: 妈妈说偶尔也要开始努力一下下了
chiiis
博客等级 码龄14年 422粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值