数据结构实验之栈八:栈的基本操作 简单方法
2016-10-06 13:47
344 查看
数据结构实验之栈八:栈的基本操作
Time Limit: 1000MS Memory Limit: 65536KB[align=center]Submit Statistic[/align]
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',否则输出栈顶元素的值,并让其出栈;
每个输出占据一行,每组测试数据(最后一组除外)完成后,输出一个空行。
Example Input
25 10AP 9AP 6P 3P 10P 8AP 2O2 5P 1P 3OP 5A
Example Output
E98F835
Hint
#include<iostream> #include<cstdio> using namespace std; typedef struct { int *base,*top,size; } stack; int T,n,m; void Initstack(stack &s,int m) { s.base=new int [1010]; s.top=s.base; s.size=m; } int empty(stack &s) { if(s.top==s.base) return 1; else return 0; } int gettop(stack &s) { int e=*(s.top-1); return e; } void Push(stack &s,int e) { *s.top++=e; } int Pop(stack &s) { int e=*--s.top; return e; } void OP(stack &s,int n) { char a[110]; for(int i=0; i<n; i++) { scanf("%s",a); if(a[0]=='P') { int t; cin>>t; if(s.top-s.base>=s.size) cout<<"F"<<endl; else Push(s,t); } else if(a[0]=='A') { if(!empty(s)) { cout<<gettop(s)<<endl; } else cout<<"E"<<endl; } else if(a[0]=='O') { if(!empty(s)) { cout<<Pop(s)<<endl; } else cout<<"E"<<endl; } } } int main() { stack s; cin>>T; while(T--) { cin>>m>>n; Initstack(s,m); OP(s,n); cout<<endl; } return 0; }
相关文章推荐
- 简单了解JavaScript操作XPath的一些基本方法
- 简单了解JavaScript操作XPath的一些基本方法
- mongodb的一些基本操作以及c++驱动的简单方法
- 简单了解JavaScript操作XPath的一些基本方法
- 简单的VC 操作XML 文件的的方法
- repeater基本使用方法,挺简单的,供大家共享
- 用C#对ADO.NET数据库完成简单操作的方法
- 在C#.net中操作XML的基本方法
- C# on rails! 基本信息CRUD操作的简单实现
- FCKeditor2.6.3操作说明,基本设置,精简以及JS调用方法
- 简单的VC 操作XML 文件的的方法
- D7中编写NT服务操作数据库的简单方法
- 简单总结一下.net获得虚拟目录几个基本操作
- 安装sqlserver2000的时候安装过某个文件创建挂起的文件操作?处理时最简单的方法
- Excel Application对象及其常用方法基本操作应用示例
- 简单的VC 操作XML 文件的的方法
- Excel应用程序对象(Application对象)及其常用方法基本操作应用示例
- D7中编写NT服务操作数据库的简单方法
- ASP连接Access数据库几种常见方法以及简单操作教程
- 操作DataTable利用DataView 做成类似sql里的top方法简单介绍【个人原创】