各ノードがもつデータを出力する再帰処理 f(ノードn) を定義した。この処理を、図の2分木の根 (最上位のノード) から始めたときの出力はどれか。
〔f(ノードn) の定義〕
・1. ノードn の右に子ノードr があれば、f(ノードr) を実行
・2. ノードn の左に子ノード rがあれば、f(ノードl) を実行
・3. 再帰処理 f(ノードr)、f(ノードl) を未実行の子ノード、又は子ノードがなければ、ノード自身がもつデータを出力
・4. 終了
ア +÷−ED×CBA
イ ABC×DE−÷+
ウ E−D÷C×B+A
エ ED−CB×÷A+
エ
以下のように出力していく。
最上位のノードは+であるのでf(ノード+)を実行
ノード+の右に子ノード÷があるので f(ノード÷) を実行
ノード÷の右に子ノード−があるので f(ノード−) を実行
ノード−の右に子ノードEがあるので f(ノードE) を実行
未実行のノードがないのでEを出力
ノード−の左に子ノードDがあるので f(ノードD) を実行
未実行のノードがないのでDを出力
未実行のノードがないので−を出力
ノード÷の左に子ノード×があるので f(ノード×) を実行
ノード−の右に子ノードCがあるので f(ノードC) を実行
未実行のノードがないのでCを出力
ノード−の左に子ノードBがあるので f(ノードB) を実行
未実行のノードがないのでBを出力
未実行のノードがないので×を出力
未実行のノードがないので÷を出力
ノード+の左に子ノードAがあるので f(ノードA) を実行
未実行のノードがないのでAを出力
未実行のノードがないので+を出力
終了
問5 | 目次 | 問7 |