Ein Binärbaum hat 1 oder 2 Kinder an Nicht-Blattknoten und 0 Knoten an Blattknoten. Es gebe Knoten in einem Baum, und wir müssen sie so anordnen, dass sie immer noch einen gültigen Binärbaum bilden.n
Ohne zu beweisen, sage ich, dass zur Maximierung der Höhe gegebene Knoten linear angeordnet sein sollten, dh jeder Nicht-Blatt-Knoten sollte nur ein Kind haben:
O 1
|
O 2
|
O 3
|
O 4
|
O 5
|
O 6
|
O 7
|
O 8
Hier ist die Formel zur Berechnung des Höhenverhältnisses in Bezug auf die Anzahl der Knoten einfach. Wenn die Höhe des Baumes ist, dann ist .h = n - 1hh=n−1
Wenn wir nun versuchen, einen Binärbaum aus Knoten mit minimaler Höhe zu erstellen (immer auf einen vollständigen Binärbaum reduzierbar), müssen wir so viele Knoten wie möglich in die oberen Ebenen packen, bevor wir zur nächsten Ebene übergehen. Der Baum hat also die Form eines folgenden Baums:n
O
|1
|
O------+-----O
|2 |3
| |
O---+---O O---+----O
|4 |5 6 7
| |
O---+--O O
8 9 10
Beginnen wir mit einem bestimmten Fall, .n=2m−1
Wir wissen, dass
20+21+22+...+2m−1=2m−1
Es ist auch leicht zu beweisen, dass ein Level höchstens Knoten enthalten kann.2 ii2i
Unter Verwendung dieses Ergebnisses in der obigen Summe stellen wir fest, dass für jede Ebene von bis ein entsprechender Term in der Erweiterung von . Dies impliziert, dass ein vollständiger Binärbaum Knoten vollständig gefüllt ist und die Höhe , wobei Höhe eines vollständigen Binärbaums mit Knoten ist.i0m2i−12m−12m−1h(2m−1)=m−1h(n)=n
Unter Verwendung dieses Ergebnisses ist , da der Baum mit Knoten vollständig gefüllt ist und somit ein Baum mit Knoten den zusätzlichen Knoten aufnehmen muss in der nächsten Ebene , Erhöhung der Höhe um 1 von auf .h(2m)=m2m−1(2m−1)+1=2mmm−1m
Bisher haben wir bewiesen, dass
sowie
h(2m)=m,
h(2m+1)=m+1
h(2m+1−1)=m
Somit ist∀n∈Z,2m≤n<2m+1
m≤h(n)<m+1
Wenn Sie jedoch log (Basis 2) auf beiden Seiten nehmen, ist
m≤log2(n)<m+1
m=⌊log2(n)⌋
Somit ist∀n,n∈[2m,2m+1)
h(n)=m=⌊log2(n)⌋
Und wir können dieses Ergebnis mit Induktion verallgemeinern .∀n∈Z
PS: Das Buch, in dem die Höhe eines vollständigen Binärbaums als ist nicht für alle gültig, da für die meisten Ganzzahlen nicht ganzzahlige Werte liefern würde (dh für alle außer perfekt binäre Bäume), aber die Höhe eines Baumes ist rein ganzzahlig.n log 2 ( n ) nlog2(n+1)−1nlog2(n)n