答え ウ
【解説】
逆ポーランド表記法で表現された式 AB+CDE/-* を通常の表記法(中置記法)にするにはスタックを用いて、変数はスタックにセットし、算術記号がきたらスタックから変数を2つ取り出し、算術記号の前後にセットするので、[ ]をスタックの状態とすると
- “A”をスタックに入れる [A]
- “B”をスタックに入れる [B, A]
- “+”がきたら
- スタックから“B”を取り出し、“+”の右にセット [A]
- スタックから“A”を取り出し、“+”の左にセット [ ]
- 結果の“A+B”をスタックに入れる [A+B]
- “C”をスタックに入れる [C, A+B]
- “D”をスタックに入れる [D, C, A+B]
- “E”をスタックに入れる [E, D, C, A+B]
- “/”がきたら
- スタックから“E”を取り出し、“/”の右にセット [D, C, A+B]
- スタックから“D”を取り出し、“/”の左にセット [C, A+B]
- 結果の“D/E”をスタックに入れる [D/E, C, A+B]
- “-”がきたら
- スタックから“D/E”を取り出し、“-”の右にセット [C, A+B]
- スタックから“C”を取り出し、“-”の左にセット [A+B]
- 結果の“C-(D/E)”をスタックに入れる [C-(D/E), A+B]
- “*”がきたら
- スタックから“C-(D/E)”を取り出し、“*”の右にセット [A+B]
- スタックから“A+B”を取り出し、“*”の左にセット [ ]
- 結果は“(A+B)*(C-(D/E))”になる。
(A+B)*(C-(D/E)) に A = 1、B = 3、C = 5、D = 4、E = 2 を代入すると
(A+B)*(C-(D/E)) = (1+3)*(5-(4/2)) =
12
(ウ)になる。