当前位置:网站首页>后缀式的计算
后缀式的计算
2022-08-04 20:42:00 【柯基@】
- 后缀式为何物?
这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式。 - 它有何优点?
这种表示法的优点是根据运算对象和算符的出现次序进行计算,不需要使用括号,也便于用械实现求值。
eg:原表达式:a*(b*(c+d/e)-f)
后缀式:abcde/+f-
【例】编写一个函数,求后缀式的数值,其中后缀式存于一个字符数组exp中,exp中最后一个字符为“\0”,作为结束符,并且假设后缀式中的数字都只有一位。本题中所出现的除法运算,皆为整除运算,如2/3结果为0、3/2结果为1。
int op(int a,char Op,int b){
//运算函数
if(Op=='+') return a+b;
if(Op=='-') return a-b;
if(Op=='*') return a*b;
if(Op=='/'){
if(b==0){
cout<<"ERROR"<<endl;
return 0;
}
else
return a/b;
}
}
int com(char exp[]){
int stack[maxSize]; // maxSize 为已经定义的常量
int top=-1;
int a,b,c;
int i=0;
while(exp[i]!='\0'){
if(exp[i]>='0' && exp[i]<='9')
stack[++top]=exp[i]-'0';
else{
b=stack[top--];
a=stack[top--];
c=op(a,exp[i],b);
stack[++top]=c;
}
i++;
}
return stack[top];
}
边栏推荐
猜你喜欢
随机推荐
数字IC设计中基本运算的粗略的延时估计
QT(41)-多线程-QTThread-同步QSemaphore-互斥QMutex
无代码平台字段设置:基础设置入门教程
Matlab画图2
composition-api
IPV6地址
Nuxt.js的优缺点和注意事项
取证程序分类
vscode离线安装插件方法
MATLAB中readtimetable函数用法
【Web漏洞探索】跨站脚本漏洞
实现菜单拖拽排序
【一起学Rust | 进阶篇 | Service Manager库】Rust专用跨平台服务管理库
EasyUi常用代码
MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
在vs code中进行本地调试和开启本地服务器
WIN10系统如何开启终端
PriorityQueue类的使用及底层原理
uwp ScrollViewer content out of panel when set the long width
【TypeScript】深入学习TypeScript枚举