基本情報技術者試験 過去問解説

逆ポーランド表記法とは?基本情報技術者試験 平成25年度 春期 午前 問6を解説

基本情報技術者試験 平成25年度 春期 午前 問6は、逆ポーランド表記法に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

図は,逆ポーランド表記法で書かれた式 abcd+++ をスタックで処理するときのスタックの変化の一部を表している。この場合,スタックの深さは最大で4となる。最大のスタックの深さが最も少ない逆ポーランド表記法の式はどれか。
abcd+++ をスタックで処理する4段階の変化図。スタックの深さが最大4になる様子

この問題の出題ポイント

  • 逆ポーランド表記法の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • データ構造分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。

選択肢

  1. ab+c+d+正解
  2. ab+cd++
  3. abc++d+
  4. abc+d++

正解

: ab+c+d+

解説

逆ポーランド表記法のスタック処理ではオペランド出現でPUSH、演算子出現で上位2要素をPOPして演算結果をPUSHします。スタックの深さは「未演算オペランドが連続するほど深くなる」ため、演算子をできるだけ早く挟む式の最大深さが小さくなります。選択肢ア「ab+c+d+」は2要素積んだ直後に+で減らすパターンが繰り返され最大深さ2で済むため、ア が正解です。

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

  • ア(正解)

    ab→+(a+b)→c→+((a+b)+c)→d→+ と、常にスタックに最大2要素しか残らず最大深さ2となり最小です。

  • ab+ で2要素→1要素になった後、cd+ で再度2要素→1要素になる時にスタック深さが3となり最小ではありません。

  • abc を連続PUSHした時点で深さ3に達し、その後の演算で減りますが最小ではありません。

  • abc を連続PUSHして深さ3になった後+でc消費、続いてd PUSHで再び深さ3となり、これも最小ではありません。

解き方の整理

逆ポーランド表記法の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

平成25年度 春期 午前 の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。