ソフトウェア開発技術者平成18年秋期 午前問9

問9

配列内に構成されたヒープとして適切なものはどれか。
  • 09a.png/image-size:347×54
  • 09i.png/image-size:347×52
  • 09u.png/image-size:348×51
  • 09e.png/image-size:347×52

分類

テクノロジ系 » アルゴリズムとプログラミング » データ構造

正解

解説

ヒープ(Heep)は、二分木の1つで「子要素は親要素より常に大きいか等しい(または常に小さいか等しい)」といように、どの親子の節の値についても大小関係が成り立っている木構造です。
09_1.png/image-size:435×266
配列をヒープ木に変換する場合、根の要素を配列の添え字1の要素とし、ある要素の左の子「2n」右の子「2n+1」という規則で2分木を構成する方法が一般的です。この方法によると配列の添え字と木構造の位置の関係は次のようになります。
09_2.png/image-size:408×266
それぞれの配列を木構造に変換してみると次のようになります。
  • 5と4の間の大小関係が不適切です。
    09_3.png/image-size:300×196
  • すべての親子間で大小関係が保たれているので適切です。
    09_4.png/image-size:300×196
  • 8と6の間の大小関係が不適切です。
    09_5.png/image-size:300×196
  • 6と5の間の大小関係が不適切です。
    09_6.png/image-size:300×196
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop