Załóżmy następującą definicję drzewa czerwono-czarnego:
- Jest to drzewo wyszukiwania binarnego.
- Każdy węzeł ma kolor czerwony lub czarny. Korzeń jest czarny.
- Dwa węzły połączone krawędzią nie mogą być jednocześnie czerwone.
- Oto dobra definicja liścia NIL, jak na wiki. Liść NIL ma kolor czarny.
- Ścieżka od korzenia do dowolnego liścia NIL zawiera tę samą liczbę czarnych węzłów.
Pytanie
Załóżmy, że zaimplementowano operacje insert
i delete
dla drzewa czerwono-czarnego. Teraz, jeśli otrzymasz prawidłowe czerwono-czarne drzewo, czy zawsze istnieje sekwencja insert
i delete
operacje, które je konstruują?
Motywacja
To pytanie jest motywowane tym pytaniem i dyskusją z tego pytania .
Osobiście uważam, że jeśli wyobrażasz sobie prawidłowe czerwono-czarne drzewo składające się tylko z czarnych węzłów (co oznacza, że wyobrażasz sobie idealnie zrównoważone drzewo), istnieje sekwencja insert
i delete
operacje, które je konstruują. Jednak,
- Nie wiem, jak dokładnie to udowodnić
- Interesuje mnie również bardziej ogólny przypadek
insert
i delete
konstruuje prawidłowe czerwono-czarne drzewo składające się tylko z czarnych węzłów . Używa wstawek / usunięć, aby utworzyć drzewo wysokości . Najpierw możemy stworzyć idealnie zrównoważone czerwono-czarne drzewo w pierwszej kolejności, używając wstawek, a następnie używając i tyle samo usunięć odmalowujemy je całkowicie czarne drzewo. Sztuką jest poruszanie się w górę razy najniższej czerwonej warstwy w górę drzewa, aż dotrze do korzenia.
insert
i delete
operacji?
insert
i delete
; może istnieć kilka sposobów wykonania tych operacji. b) Ponieważ drzewa RB są zasadniczo drzewami B rzędu 4, można tam szukać inspiracji. Szczegóły mogą okazać się trudne, ponieważ mapowanie z RB na B (i / lub wstecz) nie jest unikalne.