4.将下列表达式的逆波兰式写出来

来源:百度知道 编辑:UC知道 时间:2024/06/28 13:25:10
(A*(B+C)+D)*E-F*G

(A-C)*(B+D)+(E-F)/(G+H)

ABC+*D+E*FG*-
AC-BD+*EF-GH+/+

我教你个简单方法,csdn上看来的。

以(A*(B+C)+D)*E-F*G为例:

1)加括号 ((((A*(B+C))+D)*E)-(F*G))
2)提算符 ((((A,(B,C)+)*,D)+,E)*,(F,G)*)-
3)去括号 ABC+*D+E*FG*-

同样,对于(A-C)*(B+D)+(E-F)/(G+H)
AC-BD+*EF-GH+/+

逆波兰式其实就是二叉树的后序遍历,编译器根据你写的表达式生成一个二叉树,在后序遍历,得到逆波兰式。
ABC+*D+E*FG*-
AC-BD+*EF-GH+/+
从左向右每2个相近的字符和运算符先运算,在和别的运算

ABC+*D+E*FG*-

AC-BD+*EF-GH+/+

他们不是回答了吗? 绝对正确