SDUT3335数据结构实验之栈与队列八:栈的基本操作

栈的应用-出栈序列 一 、题目 题目描述 给定一个由n个元素构成的序列,你需要将其中的元素按顺序压入一个大小为c的栈并弹出。元素按它们的出栈顺序进行排列,会得到一个新的序列。我们知道,这样的序列会有很多种,请输出所有新序列中第一个元素最小的序列(若第一个元素最小的序列有多个,则令第二个尽可能小;若仍有多个,则令第三个最小,以此类推)。 输入格式 第一行,两个数n,c 第二行n个数,为序列中n个元素的值 输出格式 输出n个数,为满足要求的序列。 输入输出样例 输入 #1 复制 6 4 5 2 3 8 7 4 输出 #1 阅读详情

数据结构实验之栈与队列八:栈的基本操作

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。

Input

首先输入整数t(1 <= t <= 10),代表测试的组数,以后是 t 组输入。
 对于每组测试数据,第一行输入两个正整数 m(1 <= m <= 100)、n(1 <= n <= 1000),其中m代表当前栈的最大长度,n代表本组测试下面要输入的操作数。 而后的 n 行,每行的第一个字符可能是'P’或者'O’或者'A’;如果是'P’,后面还会跟着一个整数,表示把这个数据压入堆栈;如果是'O’,表示栈顶元素出栈;如果是'A',表示询问当前栈顶的值'。

Output

 对于每组测试数据,根据其中的命令字符来处理堆栈;
(1)对所有的'P'操作,如果栈满输出'F',否则完成压栈操作;
(2)对所有的'A'操作,如果栈空,则输出'E',否则输出当时栈顶的值;
(3)对所有的'O'操作,如果栈空,则输出'E',否则输出栈顶元素的值,并让其出栈;
每个输出占据一行,每组测试数据(最后一组除外)完成后,输出一个空行。

Sample Input

2
5 10
A
P 9
A
P 6
P 3
P 10
P 8
A
P 2
O
2 5
P 1
P 3
O
P 5
A

Sample Output

E
9
8
F
8

3
5

Hint

建议: 用串的方式(%s)读入操作字符。//建议是用C

Source


#include <bits/stdc++.h>
using namespace std;
int k[1010];
int main()
{
    int i,m,n,t,l,e;

    char s;
    cin>>t;
    for(l=1; l<=t; l++)
    {
        int top=0;
        cin>>m>>n;
        while(n--)
        {
            cin>>s;
            if(s=='A')
            {
                if(top==0)cout<<'E'<<endl;
                else cout<<k[top-1]<<endl;

            }
            else if (s=='O')
            {
                if(top==0)cout<<'E'<<endl;
                else
                    cout<<k[--top]<<endl;
            }
            else if(s=='P')
            {
                cin>>e;
                if(top==m)cout<<'F'<<endl;
                else
                    k[top++]=e;
            }
        }
        if(l!=t)
            cout<<endl;
    }
    return 0;
}

 

数据结构实验题(入栈,出栈) 数据结构实验报告 1)熟练掌握二叉树的二叉链表表示及前序创建算法与实现; 2)熟练掌握二叉树的前序、中序和后序递归遍历算法与实现; 3)掌握中序遍历线索二叉树的基本算法与实现 4)掌握中序遍历线索化二叉树的算法与实现; 5)按照实验题目要求独立完成实验内容(提交程序清单及相关实验数据与运行结果); 6)认真书写实验报告,并按时提交。 立即下载

相关推荐

堆栈应用题 代码

堆栈应用题 要求: 一、 设计一个堆栈类,实现对于软件操作中常用的撤销/重做 (Undo/Redo)的支持。 二、 使用控制台或者图形界面,测试这个堆栈类的使用。

数据结构实验之栈与队列八:栈的基本操作

数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。

Horizonhui 1133

badusb详细制作教程(两种方式实现远控)

badusb是一种几乎可以突破任何杀毒软件和防火墙的设备,堪称渗透测试利器 文章目录前言一、什么是badusb?二,badusb的优点三,badusb是如何攻击的?badusb原理HID攻击漏洞产生原因三、准备步骤1.设备2,编辑器的安装与设置四,编写代码(重点)第一种: SEToolkit + badusb实现PowerShell注入攻击第二种:Cobalt Strike + badusb 实现PowerShell注入攻击五,烧录六,badusb有多强大攻击场景总结 BadUSB是《黑客军团》中

Ghost_system的博客 1万+

微机原理:8086/8088堆栈操作

微机原理中8086/8088处理器堆栈知识讲解

m0_58773352的博客 1万+

Tomcat漏洞——弱口令爆破

靶机:CentOS7 IP:192.168.100.40。攻击机:kali IP:192.168.100.60。版 权 声 明:本博客所有文章除特别声明外,均采用。文章版权归作者所有,未经允许请勿转载!作 者:PeiyuJue。

weixin_57379923的博客 909

XGBoost详解(原理篇)

XGBoost全称为eXtreme Gradient Boosting,即极致梯度提升树。XGBoost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器(个体学习器间存在强依赖关系,必须串行生成的序列化方法)。Note:关于Boosting算法详见博文集成学习详解_tt丫的博客-优快云博客XGBoost是一种提升树模型,即它将许多树模型集成在一起,形成一个很强的分类器。其中所用到的树模型则是CART回归树模型。

tt丫的博客 7万+

栈的简单操作(入栈,出栈,取栈顶元素)

#include <stdio.h> #include <stdlib.h> #define StackSize 100 typedef struct { int data[StackSize]; int top; }seq; void init(seq *s) { s->top=-1; } int push(seq *s,int x) { if(s->top==99) { printf("栈已满\n"); return 0; } else

qq_43921974的博客 3268

4.UE数字人工程运行逻辑及程序逻辑

UE数字人工程运行逻辑及程序逻辑

6089

计算机中堆栈的应用举例,西门子S7-200PLC中涉及堆栈操作的指令和梯形图应用实例...

摘要:堆栈是计算机中最常用的一种数据结构,遵循先入后出的原则,一般用于保存数据。在S7-200PLC中涉及堆栈操作的指令有以下三种,最后本文给出了梯形图应用实例。 逻辑入栈(LPS,Logic Push)指令复制栈顶的值并将这个值推入栈顶,原栈顶中各级数据依次向下一级推移,栈底值被推出丢失。逻辑读栈(LRD,Logic Read)指令将堆栈中第2层的值复制到栈顶,第2~9层的数据不变堆栈是计算...

weixin_35002851的博客 5356

寒武纪AI芯片业务解析:从云端到边缘,如何布局智能计算未来?

本文深入解析了寒武纪在AI芯片领域的业务布局,重点探讨了其从云端到边缘的智能计算战略。文章分析了寒武纪云端“思元”系列芯片如何作为数据中心的高性能计算基石,以及思元220等边缘芯片如何满足碎片化场景的低功耗实时处理需求。同时,也阐述了其IP授权业务模式与技术生态构建,揭示了寒武纪在激烈市场竞争中,通过软硬件全栈方案布局智能计算未来的核心路径。

weixin_29271053的博客 405

【电力电子控制】基于强化学习的单相逆变器并网电流控制

本文将尝试以 DQN(Deep Q-Network)为例,设计并训练一个面向单相逆变器的智能控制器,实现对并网电流的精准调节。

weixin_62596197的博客 463

深入理解栈的实现:C语言中的顺序栈

通过本文的介绍,我们详细探讨了顺序栈的基本实现,包括栈的初始化、判断栈是否为空、入栈、出栈以及获取栈顶元素的操作。顺序栈的实现简单明了,适合初学者理解栈的基本概念和操作。在实际应用中,栈可以用于表达式求值、括号匹配、深度优先搜索等场景。掌握栈的基本操作将为学习更复杂的数据结构和算法打下坚实的基础。希望通过这篇博客,读者能够对顺序栈有更深入的理解,并能够在自己的项目中灵活运用这一数据结构。

分享编程知识与技巧 致力于技术交流与学习 找我合作私聊 有偿解决计算机问题 1204

Mac电脑用Latex论文排版3天速成5天实战de笔记

我后悔了,这五天竞赛搞得我视力都下降了...一个冲动的决定后成为数模竞赛论文写手,3天速成+5天时间=点亮攻克latex写论文技能💡关于Overleaf我是Mac,曾经按照大部分推荐的方式用TEXshop+vs code,但是把模板导入就开始报错。跟着少之又少的适配mac的教程(此时我已知道大概是走错路了)改了配置也无效。海鲜市场找佬改了半天,佬问我:一定要用VC吗?我说,那倒也不是。于是佬推荐我overleaf,三下五除二帮我挑配了环境,美汁汁收了我30块钱。

luwanjoyce的博客 2250

数据结构实验之栈与队列八:栈的基本操作 3335 sdut

Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 Input 首先输入整数t(1 <= t <= 10),代表测试的组数,以后是 t 组输入。 对于每组测试数据,第一行输入两个正整数 m(1 <= m <= 100)...

qq_44683599的博客 210

基于FPGA的相控阵雷达波束控制系统设计(2)

也就是在计算波控码时0,按2.8125递增,取遍-90

qq_43416206的博客 1812

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

sdut 3335 数据结构实验之栈与队列八:栈的基本操作

数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使

sxy201658506207的博客 526

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SDUT-3335 数据结构实验之栈与队列八:栈的基本操作

数据结构实验之栈与队列八:栈的基本操作Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。Input首先输入整数t(1 &lt;= t...

Leslie's Blog 397

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SDUT - 3335 数据结构实验之栈与队列八:栈的基本操作

#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int a[105], p = 0; int main() { int t, n, m, i, k, data; char cmd; scanf("%d", &amp;t); while(t--) { p = 0; scan...

Miracle_QSH的博客 1451

SDUT 3335 数据结构实验之栈与队列八:栈的基本操作

数据结构实验之栈与队列八:栈的基本操作 Time Limit:1000 msMemory Limit:65536 KiB Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 Input 首先输入整数t(1 &...

weixin_34159110的博客 121

PCA9422与PIC18F45K50的便携设备电源管理方案

电源管理是便携式锂电设备的核心技术,涉及充电、升压、降压、电量计和低功耗设计。通过I2C可编程的电源管理IC,如PCA9422,能够集成线性充电器、多路LDO和升压转换器,实现高效的电源转换和分配。结合PIC18F45K50单片机,利用其MSSP模块进行I2C通信,可动态配置电源输出和监控电池状态,提升系统可靠性和能效。这种方案适用于手持数据采集终端等场景,实现智能电源管理。

weixin_33922670的博客 412

SDUT 3335 数据结构实验之栈八:栈的基本操作

点击打开链接 #include using namespace std; int _stack[1010]; int main() { int n, m, k, top; char s[2]; cin >> k; for(int i = 1; i <= k; i++) { top = 0; cin >> n >> m;

清风笑 1505

剑指offer 栈的压入、弹出序列 Python

题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 题目链接 Python代码 # -*- coding:utf-8 -*- class ...

weixin_43988882的博客 335

微机原理与接口技术学习笔记1——堆栈指令

在8086指令系统中,堆栈所在的段就是堆栈段,它可以占用的最大空间是64KB。堆栈段的段地址由SS寄存器指示,堆栈指针寄存器SP始终指示栈顶的偏移地址。在8086指令系统中,堆栈操作指令中操作数的类型只能是字(连续的两个字),不能是字节。3.堆栈指令应用:常用于数据的暂存、交换、子程序的参数传递等。(2)SP=SP-2 (将原SP的值加2赋值给SP)(1)SP=(SP)-2 (将原SP的值减2赋值给SP)说明:目标操作数可以是段寄存器、16位寄存器或内存操作数。(1)目标操作数←(SS:SP)

m0_65438818的博客 2070

C语言数据结构 - 栈

栈的定义 类似很多软件都有撤销的操作,这其实就是用栈这种方法来实现的,当然不同的软件具体实现代码会有差异,不过原理大多都是一样的。 栈(stack)是限定仅在表尾进行插入和删除操作的线性表。 我们把允许插入和删除的一端称为栈顶(top),另一端称为栈低(bottom),不含任何数据元素的栈称为空栈。栈又称为后进后出(Last In First Out)的线性表,简称LIFO结构。 栈的顺序存储结构及实现 它是顺序表的一种,具有顺...

Flin 2486

【PTA数据结构 | C语言版】顺序栈的3个操作

请编写程序,将 n+1 个整数顺序压入容量为 n 的栈,随后执行 n+1 次取顶并出栈的操作。输入格式:输入首先在第一行给出正整数 n(≤10^4 );随后一行给出 n+1 个 int 范围内的整数,数字间以空格分隔。输出格式:将输入的n+1 个整数顺序压入容量为 n 的栈,随后执行 n+1 次取顶并出栈的操作,输出取出的元素的值,每行一个。注意:当栈已满时,入栈操作应该不执行,并在一行中输出错误信息 错误:栈已满。;当栈为空时,取顶和出栈操作应该不执行,并在一行中输出错误信息 错误:栈为空

等风来 718

顺序栈、循环链表、链栈的基本操作(链队待更新)

1. 编程实现栈的如下功能: (1)根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。 (2)将数据元素e入栈,并输出入栈后的顺序栈中各元素值。 (3)将顺序栈中的栈顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值。 2. 编程实现队列的如下功能: (1)根据输入的队列长度n和各元素值建立一个循环顺序表表示的队列(循环队列),并输出队列中各元素值。 (2)将数据元素e入队,并输出入队后的队列中各元素值。 (3)将循环队列的队首元素出队,并输出出队元素的值和出队后队列中各元素值。

qq_73625278的博客 642
上一篇: SDUT1479数据结构实验之栈与队列九:行编辑器
下一篇: SDUT3333数据结构实验之栈与队列六:下一较大值(二)
RR-RR
博客等级 码龄10年 23粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值