エが正解となるのは、再帰処理f(ノードn)の定義が、右の子ノードを先に処理し、次に左の子ノードを処理し、最後に自身のデータを出力する「後順走査(Post-order Traversal)」の変形(右優先)に相当するためです。問題文の定義1で「右に子ノードrがあれば、f(ノードr)を実行」、定義2で「左に子ノードlがあれば、f(ノードl)を実行」、定義3で「再帰処理f(ノードr), f(ノードl)を未実行の子ノード、又は子ノードがなければ、ノード自身がもつデータを出力」とあることから、この順序で処理が進みます。
読み込み中...