Die Implementierung eines ausgeglichenen binären Suchbaum?

stimmen
10

Ich habe einen binären Suchbaum implementiert und ich möchte mehr Funktionalität in seiner Einführung Funktion hinzuzufügen ein Selbst-Balancing Baum zu machen. Ich bin Codierung in C #.

Kann jemand bitte mir gute Tutorials oder Links zu diesem Thema vorschlagen? Ich habe einige Recherchen und ein paar Links gefunden, aber keiner von ihnen war genug beschreibend.

Vielen Dank.

Veröffentlicht am 24/07/2011 um 09:25
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
13

Es gibt sehr viele Algorithmen für sich selbst ausgleichSuchBäume, von denen viele sind komplex und von denen andere ganz einfach sind (wenn auch mit einigen Einschränkungen).

Das Buch "Introduction to Algorithms, Second Edition" von Cormen, Leisserson, Rivest und Stein ist eine hervorragende Einführung in Algorithmen und deckt rot / schwarz Bäume sehr gut. Es ist auch ein großes Buch im Allgemeinen auf Algorithmen und Datenstrukturen.

Wenn Sie sich mit dem daran interessiert sind splay Bäume , die sehr schnell sind und eigentlich ganz einfach zu implementieren, das ursprüngliche Papier auf der Datenstruktur ist sehr zugänglich. Hinzu kommt, dass, enthält es einen Beweis für alle Laufzeitschranken.

Die Treap ist ein einfacher randomisierte ausgeglichener binärer Suchbaum, der ganz einfach implementiert werden kann , wenn Sie wissen , wie zu implementieren Baum Rotationen . Baum Drehungen werden sie auch in splay Bäumen verwendet, und so könnte es sein , eine Untersuchung wert.

Für AVL - Bäume , dieser Vortrag scheint eine gute Ressource zu sein.

Hoffe das hilft!

Beantwortet am 24/07/2011 um 09:31
quelle vom benutzer

stimmen
0

Besuche http://code.google.com/p/self-balancing-avl-tree/ , implementiert einen avl Baum in c # Selbstausgleich. plus es implementiert auch verketten und Split - Operationen.

Beantwortet am 12/07/2012 um 23:41
quelle vom benutzer

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