转换方法:
例如:(a+b)*c-d
- 中缀表达式转前缀表达式
- 按计算顺序加上括号:(((a+b)*c)-d)
- 把每一对括号内的运算符移到括号前面:-(*(+(ab)c)d)
- 把所有括号去掉:-*+adcd
- 中缀表达式转后缀表达式
- 按计算顺序加上括号:(((a+b)*c)-d)
- 把每一对括号内的运算符移到括号前面:(((ab)+c)*d)-
- 把所有括号去掉:ad+c*d-
概念理解:
- 首先,运算符(操作符)都是一元或者二元的,很多的运算符都是二元的,例如加减乘除,大于小于这样的都是二元的,也就是说左右两边必须是要有值得,而一元运算符如等于号,取反。这类的运算符就是一元的。
- 一般程序中的表达式格式都是中缀显示的,而转为前缀或者是后缀的关键是在于运算符按优先级统一的往前移动一级或者是后退一级。而括号的划分就可以很好地让我们知道运算符的左右都是谁,这也方便了前移或者后移。
- 需要注意的还有,前缀后缀以及中缀的改变只是运算符位置的改变,而不是值位置的改变。