Implementace vyvážený strom binárního vyhledávání?

hlasů
10

Jsem implementoval binární vyhledávací strom a chci přidat více funkcí ve svém vložení funkce, aby to samovyvažující strom. Jsem kódování v jazyce C #.

Může mi někdo prosím navrhnout mne dobré výukové programy nebo odkazy na to? Udělal jsem nějaké hledání a našel několik odkazů, ale žádný z nich nebyl dostatečně popisné.

Dík.

Položena 24/07/2011 v 09:25
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
13

Existuje celá řada algoritmů pro samovyvažující vyhledávacích stromů, z nichž mnohé jsou složité a jiní z nich jsou docela jednoduché (i když s určitými výhradami).

Kniha „Úvod do algoritmů, Second Edition“ ze strany CORMEN, Leisserson, Rivest, a Stein je vynikající úvod do algoritmů a pokrývá červená / černá stromy velmi dobře. Je to také skvělá kniha obecně na algoritmů a datových struktur.

Máte-li zájem o využití rozevírá stromů , které jsou velmi rychlé a vlastně docela snadno implementovat je originální dokument o struktuře dat je velmi dobře přístupný. Kromě toho, že obsahuje důkaz o všech runtime mezích.

Treap je jednoduchý randomizované vyvážený binární vyhledávací strom, který může být realizován poměrně snadno, jakmile víte, jak implementovat strom rotace . Strom rotace jsou také použity v křídlaté stromy stejně, a tak to by stálo za to vyšetřuje.

Pro AVL stromy , tato přednáška se zdá být dobrý zdroj.

Snad to pomůže!

Odpovězeno 24/07/2011 v 09:31
zdroj uživatelem

hlasů
0

check out http://code.google.com/p/self-balancing-avl-tree/ , implementuje vlastní vyrovnávací AVL strom v jazyce C #. a navíc to také implementuje zřetězit a dílčí operace.

Odpovězeno 12/07/2012 v 23:41
zdroj uživatelem

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