中缀表达式转化成前缀表达式和后缀表达式

来源:互联网 发布:java hadoop 下载文件 编辑:程序博客网 时间:2024/04/30 14:13
35,15,+,80,70,-,*,20,/               //后缀表达方式

(((35+15)*(80-70))/20)=25           //中缀表达方式  

/,*,+,35,15,-,80,70, 20             //前缀表达方式 


这里我给出一个中缀表达式~
a+b*c-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号~
        式子变成:((a+(b*c))-(d+e))
第二步:转换前缀与后缀表达式
        前缀:把运算符号移动到对应的括号前面
              则变成:-( +(a *(bc)) +(de))
              把括号去掉:-+a*bc+de  前缀式子出现
        后缀:把运算符号移动到对应的括号后面
              则变成:((a(bc)* )+(de)+ )-
              把括号去掉:abc*+de+-  后缀式子出现
发现没有,前缀式,后缀式是不需要用括号来进行优先级的确定的。

如果你习惯他的运算方法,计算的时候也就是从两个操作数的前面
或者后面找运算符。而不是中间找,那么也就直接可以口算