web-dev-qa-db-ja.com

完全二分木と平衡二分木の違い

平衡二分木完全二分木の違いは何ですか?
すべての完全な二分木平衡二分木であると言うのは本当ですか?
その逆はどうですか?

23
sheidaei

バランス二分木は、すべてのノードの2つのサブツリーの深さが1を超えて異ならない二分木です。

complete二分木は、最後のレベルを除くすべてのレベルが完全に満たされ、最後のレベルのすべての葉がすべて左側にある二分木です。

以下は平衡二分木ですが、完全な二分木ではありません。すべての完全な二分木はバランスが取れていますが、その逆はありません。

        1
     1     1
   1   1     1
 1 

意味するように、完全なツリーでは、常にレベル差は1以下になるため、常にバランスが取れています

18
sheidaei

高さhの二分木がすべての葉をレベルhに持ち、すべての親に正確に2つの子がある場合、ツリーはfullであると言われます。

ツリーはcompleteと言われ、最後を除くすべてのレベルにできるだけ多くのノードが含まれ、最後のレベルのノードが左からタイトに埋められます。 (完全ではありませんが、完全です)

二分木の各ノードに、高さがまったく同じである2つのサブツリーがある場合、ツリーは完全にバランスが取れていると言われます。

完全にバランスの取れた木がいっぱいです

ノードのサブツリーの違いが1つ以下の場合、ツリーは高さバランスまたは単にバランスです。

1
hpl002

バランスツリー:バランスツリーは、すべてのノードでの左サブツリーの高さと右サブツリーの高さの差が最大であるバイナリツリーの形式ですk、ここでkは平衡係数。この平衡係数が0であることが判明した場合、そのツリーは完全平衡ツリーと呼ばれます。

例:
8
6 1
3 9 1

このツリーは、各ノードのサブツリーの高さの差が0または1であるため、バランス係数1のバランスツリーです。

完全な二分木:葉の各レベルを除いて、各レベルが完全に満たされている場合、ツリーは完全であると言われます。また、リーフノードへの新しい挿入は左から右になります。つまり、左レベルのリーフが最初に完全に埋められます。

例:8
6 1
3 5 4 1

これで、このツリーは完全な二分木になり、新しい挿入を行う必要がある場合は、左側の葉の下にあるはずです。この例では3です。 3が左右の子でいっぱいになると、5が新しい挿入の次の葉になります。

0
Pooja