教资会网络 | UGC NET CS 2014 年 12 月 – II |问题 8
在堆栈机 (A ∗ B) + (C ∗ D / E) 中通过反向抛光符号来评估以下表达式需要多少 PUSH 和 POP 操作?
(A) 4 PUSH 和 3 POP 指令
(B) 5 PUSH 和 4 POP 指令
(C) 6 PUSH 和 2 POP 指令
(D) 5 PUSH 和 3 POP 指令答案:(乙)
解释:逆波兰符号是一种公式符号系统,没有括号或特殊标点符号。
评估 (A * B) + (C * D / E):
首先避免使用括号和标点符号并将其转换为后缀形式即 AB+CDE/*+
现在推AB
On * pop AB 并执行 A * B。现在推回结果(说它 X)。
推动 CDE。
打开/弹出 DE 并推回结果(说它是 Y)。
On * Pop CY 并执行 * 操作并推送结果(比如 z)。
On + pop XZ 并执行 + 操作并推回最终答案。
以上计算包括 5 条 PUSH 和 4 条 POP 指令。
所以,选项(B)是正确的。这个问题的测验