応用情報技術者試験 応用情報技術者試験 令和6年度春期 午前 問6: 各ノードがもつデータを出力する再帰処理 f(ノード n) を定義した。この処理を,図の 2 分木の根(最上位のノード)から始めたときの出力はどれか。 〔f(ノー

←
応用情報技術者試験 令和6年度春期 午前
Q 66 / 80
各ノードがもつデータを出力する再帰処理 f(ノード n) を定義した。この処理を,図の 2 分木の根(最上位のノード)から始めたときの出力はどれか。 〔f(ノード n)の定義〕 1.ノード n の右に子ノード r があれば,f(ノード r) を実行 2.ノード n の左に子ノード l があれば,f(ノード l) を実行 3.再帰処理 f(ノード r),f(ノード l) を未実行の子ノード,又は子ノードがなければ,ノード自身がもつデータを出力 4.終了
2分木の図。根が+,左の子がA,右の子が÷。÷の左が×(子B,C),右が−(子D,E)
この問の正解率:45.80%(262件)

解説

応用情報技術者試験 令和6年度春期 午前 問6「各ノードがもつデータを出力する再帰処理 f(ノード n) を定義した。この処理を…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約46%です。

正解

エ. ED−CB×÷A+

正答率 45.8%(262人中 120人が正解)

問題の解説

この再帰処理は、各ノードで右の子、左の子の順に処理を済ませてから、最後にそのノード自身のデータを出力する。根の+は右の÷から始め、÷の右の−で E、D、−、左の×で C、B、×、続いて÷を出力する。その後に左の A、最後に+を出力するので、結果は ED−CB×÷A+ になる。

選択肢ごとの解説

  • ア根の+を最初に出力し、右の子、左の子の順にたどった結果である。定義ではノード自身を子の処理のあとに出力するので、この順にはならない。
  • イ左の子、右の子、ノード自身の順に出力した結果で、一般的な後置記法の並びである。この定義では右の子を先に処理するので一致しない。
  • ウ右の子、ノード自身、左の子の順に出力した結果である。この定義ではノード自身を子の処理のあとに出力するので一致しない。
  • エ正しい。−の部分は ED−、×の部分は CB× の順に出力され、続いて÷、A、+の順に出力されるので、右の子、左の子、自分自身の順という定義どおりになる。

応用情報技術者試験 令和6年度春期 午前 の過去問一覧に戻る・問6

応用情報技術者試験 の iOS アプリ版

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

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