Реализация сбалансированного двоичного дерева поиска?

голоса
10

Я реализовал дерево двоичного поиска, и я хочу, чтобы добавить больше функциональные возможности в функции вставки, чтобы сделать его самобалансировку дерева. Я кодирования в C #.

Может кто-нибудь пожалуйста, предложить мне хорошие учебники или ссылки на это? Я сделал некоторые поиски и нашел несколько ссылок, но ни один из них не был достаточно описательным.

Благодарю.

Задан 24/07/2011 в 09:25
источник пользователем
На других языках...                            


2 ответов

голоса
13

Есть великое множество алгоритмов самобалансирующейся деревьев поиска, многие из которых являются сложными и другие из которых довольно просто (хотя и с некоторыми оговорками).

Книга «Введение в алгоритмы, Second Edition» по Cormen, Leisserson, Ривест и Stein является отличным введением в алгоритмах и охватывает красные / черные дерева очень хорошо. Это также большая книга в целом алгоритмов и структур данных.

Если вы заинтересованы в использовании Расширяющихся дерев , которые очень быстро и на самом деле довольно легко реализовать, то оригинальный документ о структуре данных является очень доступным. Кроме того, она включает в себя доказательство всех во время выполнения границ.

Декартово дерево является простым рандомизированное бинарное дерево , которое может быть реализовано довольно легко , когда вы знаете , как реализовать дерево ротацию . Дерево вращения также используются в расширяющихся деревьев , а также, и поэтому оно может быть стоит исследовать.

Для АВЛ деревьев , эта лекция , кажется, хороший ресурс.

Надеюсь это поможет!

Ответил 24/07/2011 в 09:31
источник пользователем

голоса
0

проверить http://code.google.com/p/self-balancing-avl-tree/ , реализует самостоятельно балансировочный AVL дерева в C #. плюс она также реализует конкатенацию и расщепленные операции.

Ответил 12/07/2012 в 23:41
источник пользователем

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