Wdrażanie zrównoważonego binarne drzewo poszukiwań?

głosy
10

I wprowadziły przeszukiwanie binarne drzewo i chcę dodać więcej funkcjonalności w swojej funkcji wstawiania aby to samobalansujący drzewo. I 'm kodowania w C #.

Czy ktoś może zasugerować mi dobre tutoriale lub linki na ten temat? Zrobiłem kilka wyszukiwania i znaleźć kilka linków, ale żaden z nich nie były wystarczająco opisowe.

Dzięki.

Utwórz 24/07/2011 o 09:25
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
13

Istnieje bardzo wiele algorytmów samobalansujący wyszukiwania drzew, z których wiele ma charakter złożony i inne są dość proste (choć z pewnymi zastrzeżeniami).

Książka „Wprowadzenie do algorytmów, Second Edition” przez Cormen, Leisserson, Rivesta i Stein to doskonałe wprowadzenie do algorytmów i obejmuje czerwony / czarny drzew bardzo dobrze. Jest to także świetna książka w ogóle algorytmów i struktur danych.

Jeśli jesteś zainteresowany wykorzystaniem drzew splay , które są niezwykle szybkie i całkiem łatwe do realizacji, oryginalny papier o strukturze danych jest bardzo łatwo dostępne. Na początku, że zawiera on dowód wszystkich granicach uruchomieniowych.

Treap jest prosty randomizowane zrównoważony binarne drzewo poszukiwań, które mogą zostać wdrożone dość łatwo, gdy wiesz, jak wdrożyć rotacja drzewa . Rotacja drzewa są również wykorzystywane w drzewach splay, jak również, a więc może to być warte zbadania.

Dla AVL drzew , ten wykład wydaje się być dobrym źródłem informacji.

Mam nadzieję że to pomoże!

Odpowiedział 24/07/2011 o 09:31
źródło użytkownik

głosy
0

sprawdź http://code.google.com/p/self-balancing-avl-tree/ , implementuje drzewa AVL bilansującego własnym języku C #. plus to także realizuje operacje łączenia i Splitu.

Odpowiedział 12/07/2012 o 23:41
źródło użytkownik

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