数据结构实验之栈八:栈的基本操作
来源:互联网 发布:教师赚钱软件 编辑:程序博客网 时间:2024/05/18 04:58
题目描述
堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,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',否则输出栈顶元素的值,并让其出栈;
每个输出占据一行,每组测试数据(最后一组除外)完成后,输出一个空行。
示例输入
25 10AP 9AP 6P 3P 10P 8AP 2O2 5P 1P 3OP 5A
示例输出
E98F835
提示
建议: 用串的方式(%s)读入操作字符。
#include <stdio.h>#include <stdlib.h>#include <string.h>#define beginsize 100#define moresize 10typedef int e;typedef struct{ e *base; e *top; int len;}sq;int init(sq *s,int n){ s->base=(e *)malloc(n*sizeof(e)); if(!s->base)exit(-1); s->top=s->base; s->len=n; return 1;}int gettop(sq *s){ int t; if(s->top==s->base)return 0; t=*(s->top-1); return t;}int push(sq *s,e t){// if(s.top-s.base>=s.size)// {// s.base=(e *)realloc(s.base,(s.szie+moresize)*sizeof(e));// if(!s.base)return 0;// s.top=s.base+s.szie;// s.size+=moresize;// }if(s->top-s->base>=s->len) printf("F\n");else *s->top++=t; return 1;}int pop(sq *s){ if(s->top==s->base)return 0; --s->top; return 1;}int main(){ int n,m,t; scanf("%d",&t); char c[5]; sq l; int k; while(t--) { scanf("%d%d",&n,&m); init(&l,n); while(m--) { scanf("%s",c); if(!strcmp(c,"P")) { scanf("%d",&k); push(&l,k); } else if(!strcmp(c,"A")) { if(l.top==l.base) printf("E\n"); else printf("%d\n",gettop(&l)); } else { if(l.top==l.base) printf("E\n"); else { printf("%d\n",gettop(&l)); pop(&l); } } } if(t!=0) printf("\n"); } return 0;}
0 0
- 数据结构实验之栈八:栈的基本操作 SDUT
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 数据结构实验之栈八:栈的基本操作
- 个人感慨
- 继续树莓派GPIO:两片74HC595控制一个8x8LED点阵显示爱心
- js回顾第二阶段
- 编程的数学类似艺术
- java生成带有样式、表格、不定图片的word
- 数据结构实验之栈八:栈的基本操作
- 闭包的理解(精简)
- 守护进程
- 求sin的泰勒展开式
- return在try-catch-finally中的执行
- remote分页使用注意
- 数据库事务隔离级别
- 求线与线的夹角
- 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(0-1背包)