前中后缀表达式转换

中缀表达式求后缀表达式

给出一个中缀表达式如下:
a+b*c-(d+e) 
第一步:按照运算符的优先级对所有的运算单位加括号,
         式子变成了:((a+(b*c))-(d+e)) 
第二步:转换前缀与后缀表达式 
         前缀:把运算符号移动到对应的括号前面 
               则变成了:-( +(a *(bc)) +(de)) 
               把括号去掉:-+a*bc+de   前缀式子出现 
         后缀:把运算符号移动到对应的括号后面 
               则变成了:((a(bc)* )+ (de)+ )- 
               把括号去掉:abc*+de+-   后缀式子出现 

 

后缀表达式逆向求解中缀表达式

1 2 3 + 4 *5 - +

基本思路和上面的一样:递归,碰到操作符就进入递归。

从左往右扫描先碰到+号,取+号前面两个操作数:2,3 得到:2+3.

继续往下扫碰到*号,取4 和2+3 得到:(2+3)*4

-号,取(2+3)*4和5得到::(2+3)*4-5

+号:取(2+3)*4-5和1得到::1+(2+3)*4-5

你可能感兴趣的:(前中后缀表达式转换)