応用情報技術者試験 午前

解説一覧 / 令和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. 終了

問題の図
図(問題冊子 p.7 より)— クリックで原寸

正解はエ

解説 本サイト独自(IPA公表のものではありません)

 各ノードでは右の子を先に,次に左の子をたどり,両方の再帰処理を終えた後に自身を出力する。したがって,右部分木が「ED-CB×÷」,左の子が「A」,最後に根の「+」となり,出力は「ED-CB×÷A+」である。

  •  各ノード自身を子より先に出力し,その後に右の子,左の子の順でたどる前置順と取り違えると,「+÷-ED×CBA」になる。
  •  右の子を先に実行する手順を左の子が先だと読み違え,左,右,自身の順で出力すると,「ABC×DE-÷+」になる。
  •  右の子の処理後,左の子を処理する前にノード自身を出力すると,「E-D÷C×B+A」となる。自身の出力位置の取り違えである。
この解説は間違っています

 ログインは不要です

この解説は,別のモデルによるレビューを受けています。

出典:令和6年度 春期 応用情報技術者試験 午前 問6

自分で解いてから答え合わせをするなら 問題バンク — 解説は解答後に表示されます。