【发布时间】:2020-06-12 22:01:58
【问题描述】:
我正在讨论中缀、前缀和后缀转换,我对以下表达式有疑问:
中缀:a+b*d-i
以下转换是我脑海中的转换。但是,下面的前缀表达式与在线转换工具不匹配
前缀:-+a*bdi
后缀:abd*+i-
当我将上述中缀放入一些在线转换器甚至我编写的代码中时,我得到:
中缀:a+b*d-i
前缀:+a-*bdi
后缀:abd*+i-
所以,我的问题是,如果我们要评估上述前缀,那么我们将在加法之前进行减法,这对我来说似乎不正确,因为应该首先评估运算符关联性加法。这是怎么回事?
【问题讨论】:
-
在这种情况下,两个前缀表达式产生相同的结果,但请尝试
a-b*d-i。如果“在线转换器”做类似的事情,那么他们肯定会产生错误的结果。 -
@MattTimmermans 完全正确!那为什么会这样呢?我的代码和转换器here 显示相同的输出 -a-*bdi 会为您提供的中缀 exp 产生不正确的结果。你能解释一下为什么吗?因为这些转换应该始终正确且易于系统评估?
标签: algorithm data-structures postfix-mta prefix infix-notation