問6令和6年度 春期テクノロジ系
各ノードがもつデータを出力する再帰処理 f(ノード n)を定義した。この処理を,図の2分木の根(最上位のノード)から始めたときの出力はどれか。 〔f(ノード n)の定義〕 1. ノード n の右に子ノード r があれば,f(ノード r)を実行 2. ノード n の左に子ノード l があれば,f(ノード l)を実行 3. 再帰処理 f(ノード r),f(ノード l)を未実行の子ノード,又は子ノードがなければ,ノード自身がもつデータを出力 4. 終了

- ア+÷-ED×CBA
- イABC×DE-÷+
- ウE-D÷C×B+A
- エED-CB×÷A+
正解はエ
解説 本サイト独自(IPA公表のものではありません)
エ 各ノードでは右の子を先に,次に左の子をたどり,両方の再帰処理を終えた後に自身を出力する。したがって,右部分木が「ED-CB×÷」,左の子が「A」,最後に根の「+」となり,出力は「ED-CB×÷A+」である。
- ア 各ノード自身を子より先に出力し,その後に右の子,左の子の順でたどる前置順と取り違えると,「+÷-ED×CBA」になる。
- イ 右の子を先に実行する手順を左の子が先だと読み違え,左,右,自身の順で出力すると,「ABC×DE-÷+」になる。
- ウ 右の子の処理後,左の子を処理する前にノード自身を出力すると,「E-D÷C×B+A」となる。自身の出力位置の取り違えである。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和6年度 春期 応用情報技術者試験 午前 問6