Intuicyjnie „zrównoważone drzewa” powinny być drzewami, w których lewe i prawe podgrzewa w każdym węźle muszą mieć „w przybliżeniu taką samą” liczbę węzłów.
Oczywiście, gdy mówimy o zrównoważeniu czerwono-czarnych drzew * (patrz definicja na końcu), faktycznie mamy na myśli, że są one zrównoważone wysokościowo iw tym sensie są zrównoważone.
Załóżmy, że próbujemy sformalizować powyższą intuicję w następujący sposób:
Definicja: Drzewo binarne nazywa się -balanced, z , jeśli dla każdego węzła nierówność0 ≤ μ ≤ 1 N.
wstrzymuje i dla każdego istnieje jakiś węzeł, dla którego powyższa instrukcja zawodzi. jest liczbą węzłów w lewym poddrzewie ito liczba węzłów pod drzewem z jako rootem (w tym rootem).| N L | N | N | N.
Sądzę, że w literaturze na ten temat nazywane są drzewami o zrównoważonej masie .
Można pokazać, że jeśli drzewo binarne z węzłów jest zrównoważone (dla stałej ), wówczas wysokość drzewa wynosi , utrzymując w ten sposób ładne wyszukiwanie nieruchomości.μ μ > 0 O ( log n )
Pytanie brzmi:
Czy jest jakieś takie, że każde wystarczająco duże czerwono-czarne drzewo jest zrównoważone?
Stosujemy definicję drzew czerwono-czarnych (od Wstęp do algorytmów Cormena i in.):
Drzewo wyszukiwania binarnego, w którym każdy węzeł ma kolor czerwony lub czarny i
- Korzeń jest czarny
- Wszystkie węzły NULL są czarne
- Jeśli węzeł jest czerwony, wówczas oba jego dzieci są czarne.
- Dla każdego węzła wszystkie ścieżki od tego węzła do potomnych węzłów NULL mają tę samą liczbę czarnych węzłów.
Uwaga: nie liczymy węzłów NULL w powyższej definicji balanced. (Chociaż uważam, że nie ma znaczenia, jeśli to zrobimy).
źródło
Odpowiedzi:
Twierdzenie : Czerwono-czarne drzewa można dowolnie niezrównoważićμ .
Pomysł na dowód : wypełnij prawą poddrzewę jak największą liczbą węzłów, a lewą jak najmniejszą liczbą węzłów dla danej liczbyk czarnych węzłów na każdej ścieżce liścia.
Dowód : Określanie sekwencjiTk z czarnymi drzewa tak, Tk ma k czarne węzłów każdej ścieżki od korzenia do dowolnego (wirtualnego) liści. Zdefiniuj Tk=B(Lk,Rk) przy pomocy
Oczywiście, wszystkieTk są czerwono-czarny drzewa.
[ źródło ]
[ źródło ]
[ źródło ]
Teraz zweryfikujmy wrażenie, że prawa strona jest ogromna w porównaniu do lewej. Nie będę liczyć wirtualnych liści; nie wpływają na wynik.
źródło
Nie. Weź pod uwagę czerwono-czarne drzewo o następującej specjalnej strukturze.
źródło