問題
逆ポーランド記法(後置記法)で「A B + C D − ×」と表される式を中置記法で表したものはどれか。
選択肢
- 1(A + B) × (C − D)
- 2A + B × C − D
- 3A × B + C − D
- 4(A × B) + (C − D)
正解
1. (A + B) × (C − D)
詳しい解説を見る解説を閉じる
解説
後置記法(逆ポーランド記法)は、オペランドをスタックに積み、演算子が現れた時点でスタック上位の2項を取り出して演算する。AとBを積んだ後の+で(A+B)を作り、続いてCとDを積んだ後の−で(C−D)を作る。最後の×でスタックに残った(A+B)と(C−D)を掛けるため、中置記法では(A+B)×(C−D)となる。A+B×C−Dのような括弧のない式は、優先順位により×が先に評価されるため評価順が一致せず誤り。A×B+C−Dなども演算子の適用対象を取り違えている。後置記法は括弧や優先順位の規則が不要で、コンパイラの式評価やスタックマシンに利用される。「演算子が出たら直前の2項に適用」という機械的手順を覚えれば確実に解ける。
一問一答
全400問を繰り返し学習