この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

逆ポーランド表記法(後置記法・RPN: Reverse Polish Notation)では、演算子をオペランドの後に置きます。式 A+B×C の変換手順:まず演算子の優先順位から B×C が先に計算されます。スタックを使った変換:A → A、+ → スタックへ、B → AB、× → スタックへ(優先度が高いので+より先に取り出されない)、C → ABC、式終了 → ×をポップしてABC×、+をポップしてABC×+。結果は「ABC×+」。選択肢cが正解です。検証:スタック演算でABC×+をシミュレートすると A→スタック、B→スタック、C→スタック、×→BとCを取り出しB×C→スタック、+→AとB×Cを取り出しA+(B×C)=A+B×C。

なぜ他の選択肢は違うのか

選択肢 ア
+×CBAは前置記法(ポーランド表記法)を逆順に並べたものであり、正しい逆ポーランド表記ではありません。
選択肢 イ
×+ABCは演算子が先頭に来ており、これは前置記法(ポーランド表記法)の形です。逆ポーランド表記(後置記法)とは逆の順序です。
選択肢 エ
CBA+×は演算子の位置は後置ですが、オペランドの順序が逆(CBAの順)になっています。正しい評価順序が保持されていません。

解くときのポイント

逆ポーランド変換の手順:中置式をスタックで変換。「数値はそのまま出力、演算子はスタックの同優先度以上の演算子を出力してからプッシュ、式終了でスタックをすべてポップ」。A+B×C → ABC×+ は最頻出パターン。優先度の高い×が+より先にポップされる。