A+B*(C-D)-E*F的语法树如下:
计算机四则运算
1.中缀表达式
1.1定义
我们最熟悉的一种表达式A+B*(C-D)-E*F等是中缀表示法。中缀表达式是由相应的语法树中序遍历得到的。
中缀表达式先算括号里的,然后算乘除,最后算加减,但是,计算机处理中缀表达式却并不方便,因为没有一种简单的数据结构可以比较方便的从一个表达式中间抽出一部分进行计算,计算完成后再放进去,然后继续后面的计算(链表也许可以,但是,代价也是不菲)。
2.前缀表达式
2.1定义
前缀表达式又叫做波兰式。同样的道理,表达式的前缀表达式是由相应语法树的前序遍历得到的。
如上图的前缀表达式为:
- -+A * B - C D * E F
2.2求值
由前缀表达式求出结果有下面两种思路:
思路1
1.从左至右扫描表达式,如果一个操作符后面跟着两个操作数时,则计算,然后将结果作为操作数替换(这个操作符和两个操作数)
2.重复第1步,直至所有操作符处理完毕。如-+AB-CDEF