数据结构实验之栈与队列三:后缀式求值
来源:互联网 发布:人工智能 医学 编辑:程序博客网 时间:2024/05/20 08:24
数据结构实验之栈与队列三:后缀式求值
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
Input
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
Output
求该后缀式所对应的算术表达式的值,并输出之。
Example Input
59*684/-3*+#
Example Output
57
Hint
基本操作数都是一位正整数!
该题较为简单,只需建立一个数字栈,存储输入的数字,当输入运算符时,进行相应操作即可
#include<iostream>#include<stdlib.h>#define OK 1#define ERROR 0#define OVERFLOW -1#define STACK_INT_SIZE 50#define STACKINCREMENT 50using namespace std;typedef int status;typedef struct{ int *base; int *top; int stacksize;}Sqstack;status init(Sqstack &S);status push(Sqstack &S, int e);int main(){ char s[1000];//以字符串形式读入 Sqstack S; init(S); cin >> s; for(int i = 0; s[i] != '#'; i++) { if(s[i] >= '0' && s[i] <= '9') push(S, s[i]-'0');//字符型转化为整型 else if(s[i] == '+') { *(S.top-2) = *(S.top-2) + *(S.top-1);//将栈中存放的两个数据相加放到离栈底近的那个 S.top--;//删除靠近栈顶的 } else if(s[i] == '-') { *(S.top-2) = *(S.top-2) - *(S.top-1);//下列操作同理 S.top--; } else if(s[i] == '*') { *(S.top-2) = *(S.top-2) * *(S.top-1); S.top--; } else if(s[i] == '/') { *(S.top-2) = *(S.top-2) / *(S.top-1); S.top--; } } cout << *--S.top; return 0;}status init(Sqstack &S){ S.base = (int *)malloc(STACK_INT_SIZE * sizeof(int)); if(!S.base) exit(OVERFLOW); S.top = S.base; S.stacksize = STACK_INT_SIZE; return OK;}status push(Sqstack &S, int e){ if(S.top - S.base >= S.stacksize) { S.base = (int *)realloc(S.base, (S.stacksize+STACKINCREMENT) *sizeof(int)); if(!S.base) exit(OVERFLOW); S.top = S.base+S.stacksize; S.stacksize += STACKINCREMENT; } *S.top++ = e; return OK;}/***************************************************User name: jk160612王兆祚Result: AcceptedTake time: 0msTake Memory: 228KBSubmit time: 2017-10-14 16:53:43****************************************************/
阅读全文
0 0
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 2133 数据结构实验之栈与队列三:后缀式求值
- 2133-数据结构实验之栈与队列三:后缀式求值
- 2017-10-28
- Servlet进阶2
- numpy中argsort
- Unity-Unity编辑器Part1
- 富途牛牛荣获36氪NEXT年度最佳炒股产品
- 数据结构实验之栈与队列三:后缀式求值
- MPAndroidChart之LineChart使用
- 除了12306,谁让回家的路变得更艰辛?
- RBAC从零开始--数据库表设计
- SQL详讲02
- Unity-Unity编辑器Part2
- 高交会闭幕 智能手表跟拍无人机成焦点
- ARM年度大秀:看清“智能化”这枚硬币的两面
- java基础面试题总结之一