データ構造とアルゴリズム
逆ポーランド記法(後置記法)で書かれた式「3 4 + 2 * 5 −」を、数が来たらスタックに積み、演算子が来たら2つの値を取り出して計算し、結果を積む方法で評価した。結果はいくらか。ここで、演算子の左側の値は先に積まれた方の値とする。
- A−9
- B6
- C9
答えと解説を見る
正解:C. 9
3、4を積み、+ で取り出して 3 + 4 = 7 を積みます。次に2を積み、* で 7 × 2 = 14 を積みます。5を積み、− で先に積まれた14から後の5を引いて 14 − 5 = 9 が結果です。後置記法は演算の順番が並びで決まるのでかっこが要らず、通常の式では (3 + 4) × 2 − 5 に当たります。−9は引き算の左右を取り違えた値、6はかっこを付けずに 3 + 4 × 2 − 5 と読んだ値です。
- A. 引き算で 5 − 14 と左右を取り違えた値です。左側は先に積まれた14です。
- B. かっこのない 3 + 4 × 2 − 5 として計算した値です。後置記法では + が先に行われます。
- C. 正しい。(3 + 4) × 2 − 5 = 9 です。