如何在程序中将中缀表达式转换为后缀表达式

2025-04-08 08:02:43
推荐回答(2个)
回答1:

中缀表达式转换为后缀表达式的方法
a + b * c - (d + e)
按照运算符的优先级对所有的运算单位加括号。
((a + (b * c)) - (d + e))
转换中缀与后缀表达式后缀:把运算符号移动到对应的括号后面。
((a (b c) * ) + (d e) + ) -
把括号去掉,记得到了后缀表达式
a b c * + d e + -
可以发现,后缀表达式是不需要括号来调整运算优先级的。

回答2:

中缀表达式,是正常书写的方式,如公式A+B*C
后缀表达式也称(逆波兰表达式),对中缀的表示为ABC*+

转换方法,对公式字符串进行逐位判断。遇到公式中的变量直接输出,运行符入栈。
入栈时,比较栈顶运算符与入栈运算符的高低,再行出栈和入栈。

举例:
公式:A+B*C
1,输出A
2,入栈+(栈为空)
3,输出B
4,*入栈(*与栈顶元素+比较,如果栈顶优先级高,则先输出栈顶元素,否则入栈当前运算符)
5,输出C
6,出栈*
7,出栈+