配列A[1],A[2],…,A[n]で、A[1]を根とし、A[i]の左側の子をA[2i]、右側の子をA[2i+1]とみなすことによって、2分木を表現する。このとき、配列を先頭から順に調べていくことは、2分木の探索のどれに当たるか。

【問題】

配列A[1],A[2],…,A[n]で、A[1]を根とし、A[i]の左側の子をA[2i]、右側の子をA[2i+1]とみなすことによって、2分木を表現する。このとき、配列を先頭から順に調べていくことは、2分木の探索のどれに当たるか。

ア.行きがけ順(先行順)深さ優先探索

イ.帰りがけ順(後行順)深さ優先探索

ウ.通りがけ順(中間順)深さ優先探索

エ.幅優先探索

【解答】

問題文の解釈が出来るかどうかが重要になる。

まず、どのような2分木を表現しているのかを考察すると、i=1の場合、A[1]の左側をA[2]、右側をA[3]とするから

         A[1]

      A[2]    A[3]

のような2分木になる。さらに、i=2の場合、A[2]を節として、A[4]が左側に、A[5]が右側に来るので、

         A[2]

      A[4]    A[5]

となる。同様に、i=3の場合も、A[3]を節として、A[6]が左側、A[7]が右側に配置されるので、

         A[3]

      A[6]    A[7]

となる。

これを一つの2分木として表すと、

         A[1]

      A[2]    A[3]

   A[4]  A[5] A[6]  A[7]

となる。

さらに、配列を先頭から順に調べていくということは、以下の順に調べていくことを意味する。

         A[1]①

      A[2]②    A[3]③

   A[4]④  A[5]⑤ A[6]⑥  A[7]⑦

これは幅優先探索になるから、解答はエとなる。

         

↓クリックしていただけると励みになります↓
にほんブログ村 株ブログ 株日記へ にほんブログ村 メンタルヘルスブログ 統合失調症へ にほんブログ村 為替ブログ 為替日記へ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする