как мне сбалансировать мое двоичное дерево - PullRequest
1 голос
/ 22 октября 2010

У меня уже есть рабочая база данных двоичного дерева.К сожалению, он должен иметь способность балансировать себя.Я не хочу переписывать все это, я просто хочу включить функцию, которая уравновесит дерево.Какие-нибудь алгоритмы или идеи?

Ответы [ 4 ]

2 голосов
/ 22 октября 2010

AVL и RedBlack деревья - это самобалансируемые деревья.Вы можете пройти свое оригинальное дерево и вставить узлы в эти деревья.После этого вы можете сохранить новое дерево и отказаться от своего исходного дерева.

2 голосов
/ 22 октября 2010

Мне показалось полезным руководство по Stanford libavl .

Посмотрите примеры в AVL tree вики.

Также попробуйте поиграть с анимацией дерева AVL, доступной в Интернете, например,

1 голос
/ 22 октября 2010

AVL и красно-черные деревья являются сбалансированными бинарными деревьями. У меня есть реализация деревьев AVL. Смотрите здесь . Он поддерживает вставку и поиск. Удаление еще не реализовано.

0 голосов
/ 22 октября 2010

искать сбалансированные деревья, такие как авл красный черный

...