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).