题目描述

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

输入

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

输出

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

示例输入

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

示例输出

E
9
8
F
8

3
5

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{int t,i,m,n,j,a[101],e;char c[10];scanf("%d",&t);while(t){scanf("%d %d",&m,&n);i=0;for(j=0;j<n;j++){scanf("%s",c);if(c[0]=='A'){if(i==0)//相当于栈空;printf("E\n");else{printf("%d\n",a[i-1]);//栈不空,输出栈顶元素;}}else if(c[0]=='P'){scanf("%d",&e);if(i==m)//相当于栈满;{printf("F\n");}else//栈不满则进栈;{a[i]=e;i++;}}else if(c[0]=='O'){if(i==0)//栈空;printf("E\n");else//输出栈顶元素;{printf("%d\n",a[i-1]);i--;}}}t--;printf("\n");}return 0;
}

数据结构实验之栈八:栈的基本操作相关推荐

  1. 数据结构实验之排序八:快速排序

    数据结构实验之排序八:快速排序 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给定N ...

  2. 数据结构实验3、单链表的基本操作实现

    实验三: 作者说: 写的如果有不太好的地方,欢迎大佬指点! 一.运行效果截图 二.实验要求 实验3.单链表的基本操作实现 (1)实验目的 通过该实验,深入理解链表的逻辑结构.物理结构等概念,掌握链表基 ...

  3. 数据结构实验之图论八:欧拉回路

    Description 在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来. 能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学.欧拉通过对 ...

  4. 数据结构实验之二叉树八:(中序后序)求二叉树的深度

    Description 已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度. Input 输入数据有多组,输入T,代表有T组数据.每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的 ...

  5. 数据结构实验之链表八:Farey序列

    Description Farey序列是一个这样的序列:其第一级序列定义为(0/1,1/1),这一序列扩展到第二级形成序列(0/1,1/2,1/1),扩展到第三极形成序列(0/1,1/3,1/2,2/ ...

  6. 6-1 数据结构实验之排序八:快速排序 (20 分)

    题目描述: 本题要求实现一个快速排序函数. 给定 N ( N<= 100000 ) 个 int 范围内的整数,要求用快速排序对数据进行升序排列. 函数接口定义: void Quick_sort ...

  7. 图的基本操作实现(数据结构实验)

    实验项目六 图结构基本操作的实现 课程名称:数据结构 实验项目名称:图结构基本操作的实现 实验目的: 1.掌握图的基本操作-遍历. 实验要求: 1.    分别用DFS和BFS的方法实现一个无向图的遍 ...

  8. python数据结构实验目的_图的基本操作实现(数据结构实验)

    课程名称:数据结构 实验项目名称:图结构基本操作的实现 实验目的: 1.掌握图的基本操作-遍历. 实验要求: 1. 分别用DFS和BFS的方法实现一个无向图的遍历. 实验过程: 1. 创建一个图(可用 ...

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

    数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descri ...

  10. 数据结构 实验三 栈的基本运算

    栈的基本运算 任务一: 顺序栈的基本操作 任务描述: 本关任务:实现顺序栈的基本操作,包括栈的初始化.置空栈.进栈.出栈.判栈空.栈的输出(遍历)等. 相关知识: 为了完成本关任务,你需要掌握: - ...

最新文章

  1. Java NIO框架Netty教程(一) – Hello Netty
  2. C++ 对引用的理解
  3. c++基础学习(05)--(指针,引用)
  4. No style sheet with given id found错误
  5. PAT A1057 分块思想
  6. Activiti的历史记录级别
  7. 多线程日记(17.5.3)
  8. Jmeter如何将上一个请求的结果作为下一个请求的参数——使用正则表达式提取器转载...
  9. Codeforces Round #460 (Div. 2): D. Substring(有向图)
  10. Windows下python安装pymyssql报错
  11. chrome插件“京东商品佣金助手”之项目介绍(一)
  12. 自有服务器网站备案,网站放自己服务器备案
  13. oracle e18,ORACLE_10g_各版本下载地址大全
  14. 长三角政务服务“一网通办” 公积金提取 `网签合同编号`如何获取?
  15. php select下拉框,下拉框处理(select)
  16. 最重要的事和最难的事
  17. 灵汐科技类脑芯片KA200入选2021年世界互联网领先科技成果“提名项目”
  18. 2022/08/15 吉软 MySQL数据库(1)
  19. unity 正六边形网格绘制(精简版)-代码可直接复用
  20. 有限元分析的分析流程

热门文章

  1. 百度链接解析_【集合】百度分享链接解析的方法总结
  2. java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现...
  3. python总结教程_python基础教程总结10——文件
  4. 把一个dataset的表放在另一个dataset里面_现在开始:用你的Mac训练和部署一个图像分类模型...
  5. python数字转字符串_python如何将字符转换为数字
  6. mysql中设置字符_MySQL中设置默认字符集的方法
  7. java ee是什么_死磕 java集合之HashSet源码分析
  8. python电脑编程求圆的面积案例_学Python划重点七 网络编程(UPD Socket编程、上传文件实例、计算圆的面积实例)...
  9. Java大牛的一些总结,献给对未来还在迷茫中的你!
  10. oracle 布尔盲注,Oracle基于延时的盲注总结