メインコンテンツへスキップ
応用情報技術者令和6年度 春期午前6

令和6年度 春期 応用情報技術者 午前6

難度標準

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

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

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

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

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

4. 終了

選択肢

+ ÷ E D × C B A
A B C × D E ÷ +
E - D ÷ C × B + A
E D - C B × ÷ A +

解説

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

展開
結論Layer 1

この問題では、再帰処理 f(ノードn) が2分木でどのように実行されるかを問われています。f(ノードn) の定義の「1. ノードnの右に子ノードrがあれば、f(ノードr)を実行」「2. ノードnの左に子ノードlがあれば、f(ノードl)を実行」「3. 再帰処理f(ノードr), f(ノードl)を未実行の子ノード、又は子ノードがなければ、ノード自身がもつデータを出力」という順序が重要です。まず右の子、次に左の子を処理してから、それらが未実行であるか、あるいは子ノードがない場合に自身のデータを出力するという、これは「後置順走査(Postorder Traversal)」に該当します。後置順走査では、左部分木、右部分木、そして根ノードの順に処理されます。

詳細Layer 2

選択肢エが正解となるのは、この後置順走査の性質を正しく反映しているからです。具体的には、まず最も右下の子ノードの処理が完了し、次にその左の子、さらにその親、というように、再帰的に処理が進み、最終的に根ノードのデータが出力されます。

補足Layer 3

他の選択肢が誤りである理由を分析します。アは、右の子、左の子、自身の順で出力されるように見えますが、右の子への再帰が完了する前に左の子の処理が開始されているように読めるため、後置順走査とは異なります。イは、左の子、自身の、右の子、という順序に見え、これは「中置順走査(Inorder Traversal)」に似ていますが、定義の「1」と「2」の順序から不適切です。ウも、右の子、自身、左の子、という順序に見え、これは「前置順走査(Preorder Traversal)」の変形や、定義の順序と矛盾する可能性があり、正しくありません。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

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

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「アルゴリズムとプログラミング」の学習ポイント

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

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

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

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

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

アルゴリズムとプログラミング の他の問題