数据结构实验之栈与队列三:后缀式求值
来源:互联网 发布:北海道自由行 知乎 编辑:程序博客网 时间:2024/06/10 11:30
数据结构实验之栈与队列三:后缀式求值
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
Input
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
Output
求该后缀式所对应的算术表达式的值,并输出之。
Example Input
59*684/-3*+#
Example Output
57
Hint
基本操作数都是一位正整数!
代码如下:
#include<bits/stdc++.h>typedef int elemtype;typedef int status;#define MAXSIZE 100#define true 1#define false 0typedef struct{ elemtype *base; elemtype *top; int stacksize;} Sqstack;status isEmpty(Sqstack &S){ if(S.top == S.base) return true; else return false;}void initStack(Sqstack &S){ S.base = new elemtype[MAXSIZE]; S.top = S.base; S.stacksize = MAXSIZE;}elemtype getTop(Sqstack &S){ if(S.base == S.top) return false; else return *(S.top-1);}void Push(Sqstack &S, elemtype e) //压栈{ if(S.top-S.base >= S.stacksize) { S.base = (elemtype *)realloc(S.base,(MAXSIZE+S.stacksize)*sizeof(elemtype)); S.top = S.base + S.stacksize; S.stacksize += MAXSIZE; } *S.top++ = e;}int Pop(Sqstack &S, elemtype &e){ if(S.top == S.base) return false; return e = * --S.top;}int main(){ Sqstack S; initStack(S); char str[100]; scanf("%s", str); for(int i = 0; str[i] != '#'; i++) { if(str[i]>='0' && str[i] <= '9') { Push(S, str[i]-'0'); } else if(str[i] == '*') { int a, b; Pop(S, a); Pop(S, b); Push(S, a*b); } else if(str[i] == '/') { int a, b; Pop(S, a); Pop(S, b); Push(S, b/a); } else if(str[i] == '+') { int a, b; Pop(S, a); Pop(S, b); Push(S, a+b); } else if(str[i] == '-') { int a, b; Pop(S, a); Pop(S, b); Push(S, b-a); } } printf("%d\n", getTop(S)); return 0;}
阅读全文
0 0
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 2133 数据结构实验之栈与队列三:后缀式求值
- 2133-数据结构实验之栈与队列三:后缀式求值
- ubuntu16.04安装搜狗输入法
- windows下samba用户认证的缓存问题
- KVC使用的例子
- 利用高权重网站借力操作关键词快速排名!
- WebView的使用
- 数据结构实验之栈与队列三:后缀式求值
- linux下mysql的root密码忘记解决方
- 也许是失意
- Lua之Math库
- C++面题(MicroStrategy)
- WeX5入门记录
- JavaWeb第二章HTML与CSS网页02
- Hibernate操作数据库之基础操作
- 模板和泛型编程。