首页 > 技术文章 > 中缀表达式转换为前缀或后缀表达式的手工做法

XiaoJ-cs 2021-07-27 17:16 原文

a/b + ( c*d - e*f) / g 为例:

步骤1:按照运算符的优先级对所有的运算单元加括号。 ((a/b) + (( (c*d) - (e*f)) / g))
步骤2:转换为前缀或后缀表达式。
前缀:把运算符号移动到对应的括号前面,式子变为 +(/(ab)/(-(*(cd)*(ef))g))
把括号去掉:+/ab/-*cd*efg 前缀式子出现。

后缀:把运算符号移动到对应的括号前面,式子变为 ((ab)/(((cd)*(ef)*)-g)/)+
把括号去掉:ab/cd*ef*-g/+ 前缀式子出现。

推荐阅读