中缀后固定表达式

时间:2016-12-17 08:41:01

标签: c stack operator-precedence postfix-notation infix-notation

以下是中缀表达式 - A-(B / C +(D%E * F)/ G)* H

你能告诉我它的后缀表达是什么

1.ABC/D%EF*G/+H*-

2.ABC/DE%F*G/+H*- .

我无法决定它是D%E还是DE%我认为在扫描D之后,"%"将被转移到堆栈&然后E将被写入&然后通过比较*& %,%将发生,但在互联网上显示DE%是正确的。 正确的解释和解释将不胜感激。

1 个答案:

答案 0 :(得分:1)

你的第二个选择是正确的。

操作员没有被推入堆栈;它们从堆栈中弹出两个值,应用操作,并将结果推送到堆栈。因此,由于%*共享相同的优先级,因此它们从左到右应用:

(D%E*F) =>
Push D
Push E
Modulo
Push F
Multiply