Qual é a profundidade de uma árvore binária completa com

7

Esta pergunta usa a seguinte definição de uma árvore binária completa :

Uma árvore binária T com N Os níveis estarão completos se todos os níveis, exceto possivelmente o último, estiverem completamente cheios e o último nível tiver todos os seus nós no lado esquerdo.

A seguir, um trecho de Algoritmos :

Isto (logN) também é a profundidade de uma árvore binária completa com Nnós. (Mais precisamente:registroN.)

Por que o trecho acima é verdadeiro?

Originalmente definido aqui

Phidias
fonte

Respostas:

7

Considere como uma árvore binária completa de altura h é construído, um vértice no nível da raiz, dois no primeiro nível abaixo da raiz, quatro no segundo nível abaixo e assim por diante, até hthnível, que possui pelo menos um vértice, mas no máximo o dobro do nível anterior. Observe que o número de vértices em cada nível é uma potência de dois (excluindo o último, que é um caso especial). Então nós temos:

1 1+Eu=0 0h-1 12EunEu=0 0h2Eu
Usando a identidade que a soma da primeira k poderes de dois é 2k+1 1-1 1 Nós temos:
1 1+2h-1 1n2h+1 1-1 12hn2h+1 1-1 1
e, portanto
2hn<2h+1 1

Tomando o logaritmo da base 2:

hregistron<h+1 1
Para que possamos concluir
h=registron
Como registron é maior do que h, mas menor que o próximo número inteiro h+1 1.
Luke Mathieson
fonte
11
É bom notar que o piso (logn) é igual ao teto (log (n + 1)) -1. Isso também pode ser obtido alterando a igualdade para 2 ^ h -1 <n <= 2 ^ (h + 1) -1.
KGhatak