アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20220612 実施分 問7

2分木の各ノードがもつ記号を出力する再帰的なプログラムProc(n)の定義は,次のとおりである。このプログラムを,図の2分木の根(最上位のノード)に適用したときの出力はどれか。 Proc(n){ nに左の子lがあればProc(l)を呼び出す。 nに右の子rがあればProc(r)を呼び出す。 nの記号を出力して終了する。 }
2分木: 根は+。+の左の子はa,右の子は*。*の左の子は-,右の子はd。-の左の子はb,右の子はc。
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 20220612 実施分 問7(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:ウ

覚える知識

2分木の巡回順序(帰りがけ順)

帰りがけ順は、左部分木、右部分木、節の順に訪問する2分木の巡回方法である。

この問題で必要なこと

左→右→自身の順に出力する後行順(帰りがけ順)で巡回すると abc-d*+ となる。

ひっかけ

行きがけ順(+a*-bcd)や通りがけ順(a+b-c*d)と取り違えさせる。

この知識の出題:本試験系 1 回・免除試験 6 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「木構造の基本と巡回順序・グラフの表現」で学ぶ

同じ知識の過去問