4

データ構造に関する本を読んでいますが、左バランス バイナリ ツリーは、葉が最後のレベルの左端の位置のみを占めるツリーであると書かれています。

これは私には少しあいまいに思えました。これは、葉が根の左側にのみ存在し、レベル全体に分布していることを意味しますか、それともツリー全体の左側にのみ葉が存在することを意味しますか。正確に何がバランスの取れたままになっているのですか?

私の推測が答えのいずれかをカバーしているかどうかはわかりません。そのため、誰かが助けてくれれば大歓迎です:-)。

4

4 に答える 4

6

左バランス二分木は、各ノードの左サブツリーが右サブツリーの前に埋められるバランス二分木と考えることができます。より非公式な言い方をすれば、これは最下位レベルのノードがすべてツリー全体の左側にあるツリーです。

たとえば、次のツリーを見てください。

ここに画像の説明を入力

このツリーはバランスが取れていますが、左バランスではありません。ただし、ノード 67 が削除された場合、ツリーは左バランスになります。

于 2011-09-01T19:51:22.967 に答える
3

左バランス二分木の定義は、完全二分木の定義と同じように思えます。

于 2011-09-01T19:52:23.550 に答える
2

答えはよくわかりませんが、本の説明からするとこんな感じです...

手始めに、このように考えてみましょう。ツリーのすべての「行」には、ゼロから始まりカウントアップする番号があります。番号が最も大きい行が最後のレベルと見なされます。

リーフノードは子のないノードであることを忘れないでください。したがって、ツリーは、次のように、最後のレベルのすべてのリーフノードが左側にある必要があるという条件を満たしています。

          50
       /     \
     /         \
    35         70
   /  \       /  \
 10    34    57  90
 /     /        /
9     7        78

90の右の子として「98」を追加した場合、または57の右の子として「59」を追加した場合、このツリーはもはや左バランスになりません。


編集:ブランドンEテイラーの答えを読んだ後、あなたは間違いなくこれを選ぶべきではありません。それを調べて説明をもう一度読んだ後、彼はより理にかなっているだけでなく、説明によりよく適合します。

于 2011-09-01T19:57:04.237 に答える