2013-02-01 5 views
2

Итак, я изучал сбалансированное двоичное дерево поиска.Определение сбалансированного дерева двоичного поиска

Я гугле, и это то, что я нашел:

бинарное дерево, в котором глубина двух поддеревьев каждого узла отличаются на 1 или меньше (из википедии)

Может 't мы просто определяем сбалансированное двоичное дерево как дерево с высотой не более, чем ceil (log (n + 1)/log 2)?

И, кажется, из этого ответа Is Binary Search tree balanced?, вопросник, похоже, уже просил очень то же самое, но принятый ответ отвергает эту идею, подавая пример дерева фибоначчи. Дерево Фибоначчи - это не сбалансированное дерево? Я думаю, что ответчика можно спутать с определением сбалансированного дерева в дереве AVL, в котором, на мой взгляд, разрешить определенное неуравновешенное дерево.

+0

Лучшим случаем для BST является log (n), а наихудший случай - n. идея сбалансированного BST похожа на то, что вы говорите, глубина двух поддеревьев каждого узла отличается на 1 или меньше. Однако дерево AVL или дерево Red-Black являются реализацией самобалансирующегося BST, в зависимости от алгоритма они не будут реализовывать идеально сбалансированное дерево log (n), а скорее в порядке nlog (n), который намного лучше чем n. – john

+0

Вы уверены, что его nlogn (n)? это должно быть забито (n) правильно? потому что n на самом деле лучше nlog (n) – bysreg

+0

Ах да, это должно было быть clog (n) с c john

ответ

1

Если мои вычисления ошибочны, определение не будет работать. Например, если вы берете полное двоичное дерево высотой 6, оно имеет 63 узла. Если вы удалите двух братьев и сестер внизу и их родителей, у вас будет 60 узлов. Это дерево не сбалансировано, но его высота по-прежнему равна ceil (log (n + 1)/log 2).

+0

oh теперь я понимаю, почему он не работает. в формуле говорится, что бинарное дерево с n узлами может быть сбалансировано с максимальной высотой h, но оно не указывает, сбалансирована ли структура дерева – bysreg

Смежные вопросы