メインコンテンツへスキップ
高度試験共通令和6年度 春期午前I問 3

令和6年度 春期 高度試験共通 午前I 問3

難度標準

各ノードがもつデータを出力する再帰処理 f(ノードn)を定義した。この処理を、図の2分木の根(最上位のノード) から始めたときの出力はどれか。

〔f(ノードn)の定義〕

1. ノードnの右に子ノードrがあれば、f(ノードr)を実行

2. ノードnの左に子ノードlがあれば、f(ノードl)を実行

3. 再帰処理f(ノードr), f(ノードl)を未実行の子ノード、又は子ノードがなければ、ノード自身がもつデータを出力

4. 終了

問3の図表1

選択肢

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

各節点で右の子、左の子、自身の順に出力する手続です。

詳細Layer 2
展開

右側の部分木はE、D、−、左側はC、B、×の順になり、それらの親である÷を出力して、最後に根の左の子Aと根の+を出力します。出力はED−CB×÷A+となるので、エが正解です。子を処理済みなら自身を出力する点に注意します。

各選択肢の解説

ア

+÷−ED×CBA

誤りです。+÷−ED×CBAは、各ノードでまず自身を出力し、その後に右、左の順で子をたどる前順の出力です。定義の手順3では、右と左の子の処理を終えた後、又は子がない場合に初めて自身を出力します。そのため根の+は先頭ではなく、最後に出力されます。

イ

ABC×DE−÷+

誤りです。ABC×DE−÷+は、左の子を先に処理する後順(左→右→自身)の出力です。定義では手順1で右の子を先に実行するので、f(+)はまず右の÷の部分木に進みます。根の左の子Aは、÷の部分木をすべて出力した後でなければ出力されず、先頭には来ません。

ウ

E−D÷C×B+A

誤りです。E−D÷C×B+Aは、右→自身→左の順にたどる中順の出力です。定義では、−は右の子Eと左の子Dの両方を処理し終えてから出力されます。そのためE、D、−の順になり、演算子が子の間に入る並びにはなりません。

エ

ED−CB×÷A+

正しいです。図の木は、+の左がA・右が÷、÷の左が×・右が−です。f(+)は右の÷へ、f(÷)は右の−へ進みます。f(−)では右のE、左のDを出力してから−を出力します。次に÷の左の×でC、B、×を出力し、続けて÷を出力します。最後に+の左のAを出力し、+を出力するので、結果はED−CB×÷A+です。

この解説は?
AI生成

解説は公式の問題文・公式解答を基に作成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ずリンク先の公式資料でご確認ください。

最終更新:

検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

分野「開発技術」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
本問の分野で問われる代表的な知識・用語の整理。
学習の進め方
正解/誤答の選択肢ごとに「なぜ正しい / なぜ違うのか」を1行ずつ言語化すると定着する。
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

関連する問題

開発技術 の他の問題

他年度の「開発技術」問題

高度試験共通 の同じ分野を年度をまたいで演習する

高度試験共通 の学習ガイド