Время анализа бинарных операций поиска дерева

голоса
0

Я читал о бинарных деревьев поиска, что если это полное дерево (все узлы, за исключением листовых узлов имеют двух детей), имеющих п узлов, то ни один путь не может быть больше, чем 1 + журнал п узлов.

Вот расчет я ... вы можете показать мне, где я ошибся ....

the first level of bst has only one node(i.e. the root)-->2^0
the second level have 2 nodes(the children of root)---->2^1
the third level has 2^3=8 nodes
 .
 .
the (x+1)th level has 2^x nodes

so the total number of nodes =n = 2^0 +2^1 +2^2 +...+2^x = 2^(x+1)-1
so, x=log(n+1)-1

now as it is a 'complete' tree...the longest path(which has most no of nodes)=x
and so the nodes experienced in this path is x+1= log(n+1)

Тогда как число 1 + лог п придумать ...?

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


1 ответов

голоса
1

Более короткий ответ: количество xуровней в полном (или совершенном) бинарном дереве log2(n+1), где nэто число узлов ( в качестве альтернативы, n = 2^(x-1)). Дерево с xуровнями имеет высоту x-1. Самый длинный путь от корня до любого узла содержит x = log2(n+1)узлы (и x-1ребра).

Теперь , потому что n+1это сила 2, имеем log2(n+1) = 1 + floor(log2(n)). Другими словами, 1 + log2(n)это правильная верхняя граница, но она никогда не является целым числом.

Неясно мне ли xв вашем вычислении относится к высоте или несколько уровней.

Ответил 26/09/2011 в 19:35
источник пользователем

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