この質問では、完全なバイナリツリーの次の定義を使用します†:
最後のレベルを除くすべてのレベルが完全に満たされ、最後のレベルのすべてのノードが左側にある場合、レベルのバイナリツリーは完全です。
以下はAlgorithmsからの抜粋です。
これ()は、ノードを持つ完全なバイナリツリーの深さでもあります。(より正確には、です。)
上記の抜粋が真実なのはなぜですか?
†もともとここで定義
この質問では、完全なバイナリツリーの次の定義を使用します†:
最後のレベルを除くすべてのレベルが完全に満たされ、最後のレベルのすべてのノードが左側にある場合、レベルのバイナリツリーは完全です。
以下はAlgorithmsからの抜粋です。
これ()は、ノードを持つ完全なバイナリツリーの深さでもあります。(より正確には、です。)
上記の抜粋が真実なのはなぜですか?
†もともとここで定義
回答:
高さ完全なバイナリツリーがどのように構築されるかを検討してください。1つはルートレベルの頂点、2つはルートの下の最初のレベル、4つは次の2番目のレベルというように、レベルまで続き、少なくとも1つの頂点、ただし最大で前のレベルの2倍。各レベルの頂点の数は2の累乗であることに注意してください(特殊なケースである最後を除く)。次に、 を使用して、2の最初の乗の合計はです: 、したがって
2を底とする対数を取る: 、我々は結論付けることができるので ようよりも大きい次の整数よりも少ないが、。