Nie rozumiem tej binarne drzewo poszukiwań (BST) Przykład algorytmu

głosy
2

W kodzie skreślenia z tutaj .

Nie rozumiem pierwszy fragment kodu delecji (gdy węzeł nie posiada dwoje dzieci).

Jeśli węzeł usunięciem ma rodziców i samego dziecka (czyli węzeł ma jedno dziecko), jak to działa?

Kod jest po prostu usunięcie węzła a nie ustawienie wskazówek rodzica do teraz osieroconego dziecka.

Ja czegoś brakuje?

Utwórz 12/04/2011 o 20:58
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Mogę się mylić, ale kod na wskazanej stronie wydaje się OK. Nie testowałem go, choć.

Jest to prawdą, ponieważ funkcja usuwania trwa jeden argument, który jest typu BSTNode ** węzła. To NIE jest wskaźnikiem do węzła. Jest to wskaźnik do rodzica węzła wskaźnik do samego węzła . To może być trochę zaniedbany, ale muszę przyznać, że po zrealizowaniu co kod robi, jest to elegancki sposób na jego rozwiązanie. Więc kiedy przepisać (* węzeł), nie są przepisywanie węzeł sam , zamiast tego są przepisywanie węzła rodzica wskaźnik do węzła . Skutecznie kod jest robić to, co sugerowano w nieco wypaczony sposób: D. Mam nadzieję, że zrozumiał, co miałem na myśli i mam nadzieję, że mam rację.

Polecam również zapoznanie się dalej o czerwono-czarny drzew, ponieważ ten artykuł daje wgląd tylko do tworzenia drzewa, ale opisana struktura nie ma granic asymptotyczne dla jego wysokości. Jeśli np pchasz wartości sortowane w tej strukturze, to będzie podłączony lista zamiast wyważone drzewo.


Odpowiedział 12/04/2011 o 21:25
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more