当前位置:网站首页>后缀式的计算
后缀式的计算
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];
}
边栏推荐
猜你喜欢
随机推荐
机器学习_02
DICOM医学影像协议
C#移动OA办公系统源码(基于微信企业号)
win10 uwp 使用 ScaleTransform 放大某个元素
composition-api
无代码平台字段设置:基础设置入门教程
win10 uwp 修改图片质量压缩图片
Feign 与 OpenFeign
基于Nodejs的电商管理平台的设计和实现
Tensorflow2 环境搭建
【debug】postgres数据存储错乱
动态数组底层是如何实现的
Big capital has begun to flee the crypto space?
基于HDF的LED驱动程序开发(2)
Latex分章节、分段落编译:input{}与include{}的区别
Uniapp微信雪糕刺客单页小程序源码
微信小程序云开发 | 赠、删、改城市名称信息的应用实现
QT(42)-QT线程-线程调用槽函数
Zero-knowledge proof - zkSNARK proof system
C#将对象转换为Dictionary字典集合









