我正在处理中缀,前缀和后缀转换,我对以下表达式有疑问:
Infix:a+b*d-i
以下是我想到的转换。但是,下面的前缀表达式与在线转换工具不匹配前缀:-+a*bdi
后缀:abd*+i-
[当我在一些在线转换器或什至在我编写的代码中放入上面的缀时,我得到:中缀:a+b*d-i
前缀:+a-*bdi
后缀:abd*+i-
因此,我的问题是,如果我们要评估上述前缀,那么我们将在进行加法运算之前先进行减法运算,这对我来说似乎是不正确的,因为应该首先评估每个运算符的关联度加法运算。这如何正确?
您在此处指向的在线转换器使用不正确的过程将中缀转换为前缀:https://www.web4college.com/converters/infix-to-postfix-prefix.php
它说(这是错误的,所以没有人复制!!):
作者对此感到困惑,因为:
但是,由于左或右关联性,反转中缀表达式不会反转其表达式树。因此,给定的过程会产生错误的答案。
a-b-c TREE REVERSED TREE c-b-a TREE
- - -
/ \ / \ / \
- c c - - a
/ \ / \ / \
a b b a c b