基本情報技術者試験 基本情報技術者試験 平成25年度 春期 午前 午前 問6: 図は,逆ポーランド表記法で書かれた式 abcd+++ をスタックで処理するときのスタックの変化の一部を表している。この場合,スタックの深さは最大で4となる。最大

基本情報技術者試験 平成25年度 春期 午前
Q 66 / 80
図は,で書かれた式 abcd+++ をで処理するときのスタックの変化の一部を表している。この場合,スタックの深さは最大で4となる。最大のスタックの深さが最も少ない逆ポーランド表記法の式はどれか。
abcd+++ をスタックで処理する4段階の変化図。スタックの深さが最大4になる様子
この問の正解率:44.98%(1,214件)

解説

基本情報技術者試験 平成25年度 春期 午前 問6「図は,逆ポーランド表記法で書かれた式 abcd+++ をスタックで処理するときの…」の正解と解説です。基本情報技術者試験の「データ構造」分野の過去問で、これまでの受験者の正答率は約45%です。

正解

. ab+c+d+

正答率 45.0%(1,214人中 546人が正解)

問題の解説

逆ポーランド表記法スタック処理ではオペランド出現で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年度 春期 午前 の過去問一覧に戻る・問6

基本情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

基本情報技術者試験 合格.dev を App Store でダウンロード