以下是中缀表达式 - 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%是正确的。 正确的解释和解释将不胜感激。
答案 0 :(得分:1)
你的第二个选择是正确的。
操作员没有被推入堆栈;它们从堆栈中弹出两个值,应用操作,并将结果推送到堆栈。因此,由于%
和*
共享相同的优先级,因此它们从左到右应用:
(D%E*F) =>
Push D
Push E
Modulo
Push F
Multiply