過去問解きまくり研究所 ホーム

平成22年度 秋期 午前 問6

データ構造

節点に関する問題

節点 1,2,…,n をもつ木を表現するために,大きさ n の整数型配列 A[1],A[2],…,A[n] を用意して,節点 i の親の番号を A[i] に格納する。節点 k が根の場合は A[k]=0 とする。表に示す配列が表す木の葉の数は,幾つか。

i12345678
A[i]01133555
答えと解説を見る

✓ これが正解ウ5

解説

配列の値に一度も現れない番号が葉で、5個です。

この配列は、節点の番号を添字にして、そこに親の番号を入れる形で木を表しています。ある節点が子をもつということは、その節点の番号がどこかの要素の値として現れているということです。裏を返せば、配列の値に一度も現れない番号の節点は子をもたない、つまり葉です。そこで値の並びを見て、現れる番号の種類を数えます。現れるのは0のほかに1と3と5の3種類で、0は根を表す印なので節点の番号ではありません。節点は全部で8個あり、子をもつのは3個ですから、残りの5個が葉になります。判定の軸は、数える対象を親の側にするか子をもたない側にするかと、根を表す0を節点の番号と取り違えないことです。

ほかの選択肢はなぜ違うのか

出典:平成22年度 秋期 基本情報技術者試験 午前 問6(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)