Het implementeren van een evenwichtige binaire zoekboom?

stemmen
10

Ik heb een binaire zoekboom geïmplementeerd en ik wil meer functionaliteit in het inbrengen functie toe te voegen om het een self-balancing boom te maken. Ik ben codering in C #.

Kan iemand me alstublieft goed tutorials of links op deze voorstellen? Ik heb een aantal zoekopdrachten en vond een aantal links, maar geen van hen waren beschrijvend genoeg.

Bedankt.

De vraag is gesteld op 24/07/2011 om 09:25
bron van user
In andere talen...                            


2 antwoorden

stemmen
13

Er zijn een groot aantal algoritmen voor zelfbalancerende search bomen, waarvan vele zijn complex en andere zijn heel eenvoudig (zij het met enig voorbehoud).

Het boek "Introduction to Algorithms, Second Edition" door Cormen, Leisserson, Rivest, en Stein is een uitstekende introductie tot algoritmen en beslaat rood / zwarte bomen zeer goed. Het is ook een geweldig boek in het algemeen op de algoritmen en datastructuren.

Als u geïnteresseerd bent in het gebruik van zijn splayboom , die zeer snel en eigenlijk heel eenvoudig te implementeren zijn, de originele papieren op de datastructuur is zeer toegankelijk. Bovendien, bevat een bewijs van de runtime grenzen.

De treap is een eenvoudige gerandomiseerde evenwichtige binary search boom die vrij gemakkelijk kan worden geïmplementeerd als je eenmaal weet hoe te implementeren boom rotaties . Boom rotaties worden ook gebruikt in splayboom zo goed, en dus is het misschien de moeite waard zijn.

Voor AVL bomen , deze lezing lijkt een goede bron zijn.

Ik hoop dat dit helpt!

antwoordde op 24/07/2011 om 09:31
bron van user

stemmen
0

check out http://code.google.com/p/self-balancing-avl-tree/ , implementeert een self balancing AVL boom in C #. plus het voert ook aaneenschakelen en split operaties.

antwoordde op 12/07/2012 om 23:41
bron van user

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