L'implementazione di un equilibrato albero binario di ricerca?

voti
10

Ho implementato un albero binario di ricerca e voglio aggiungere ulteriori funzionalità nella sua funzione di inserimento per farne un albero di auto-bilanciamento. Sto codifica in C #.

Qualcuno può suggerire prego me buoni tutorial o link su questo? Ho fatto alcune ricerche e ho trovato alcuni link, ma nessuno di loro erano abbastanza descrittivo.

Grazie.

È pubblicato 24/07/2011 alle 09:25
fonte dall'utente
In altre lingue...                            


2 risposte

voti
13

Ci sono un gran numero di algoritmi per alberi di ricerca auto-bilanciamento, molti dei quali sono complessi e gli altri dei quali sono piuttosto semplici (anche se, con alcuni avvertimenti).

Il libro "Introduzione agli algoritmi, Second Edition" di Cormen, Leisserson, Rivest e Stein è un ottimo Introduzione agli algoritmi e copre gli alberi rosso / nero molto bene. E 'anche un grande libro in generale su algoritmi e strutture dati.

Se siete interessati ad utilizzare albero splay , che sono estremamente veloce e in realtà abbastanza facile da implementare, il documento originale sulla struttura dei dati è molto accessibile. In cima a quello, include una prova di tutti i limiti di runtime.

Il Treap è un semplice randomizzato equilibrata albero binario di ricerca che può essere implementato abbastanza facilmente una volta che sapete come implementare rotazioni degli alberi . Rotazioni degli alberi sono utilizzati anche in albero splay pure, e quindi potrebbe essere la pena indagare.

Per alberi AVL , questa conferenza sembra essere una buona risorsa.

Spero che questo ti aiuti!

Risposto il 24/07/2011 a 09:31
fonte dall'utente

voti
0

check out http://code.google.com/p/self-balancing-avl-tree/ , implementa un albero AVL autobilanciante in C #. più esso implementa anche le operazioni di concatenare e split.

Risposto il 12/07/2012 a 23:41
fonte dall'utente

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