1. 前缀表达式
指的是不包含括号,运算符放在两个运算对象的前面,严格从右向左进行(不再考虑运算符的优先规则),所有的计算按运算符出现的顺序。
2. 后缀表达式
指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。
由于后缀表达式的运算符在两个操作数的后面,那么计算机在解析后缀表达式的时候,只需要从左向右扫描,也就是只需要向前扫描,而不用回头扫描,遇到运算符就将运算符放在前面两个操作符的中间(这里先不考虑乘方类似的单目运算),一直运算到最右边的运算符,那么就得出运算结果了。
3. 具体步骤
注意: 后缀表达式是从左向右解析,而前缀表达式是从右向左解析。
假设中缀表达式为:a+b*c-(d+e)
-
第一步:根据运算符的优先级对所有运算单位加括号 式子变为:((a+(b*c))-(d+e))
-
转换为前缀:把运算符号移动到对应的括号的前面
-
式子变为:-(+(a*(bc))+(de))
-
把括号去掉,前缀表达式:-+a*bc+de
-
转换为后缀: 把运算符号移动到对应的括号的后面
-
式子变为&#x