Na minha aula de Java, estamos aprendendo sobre a complexidade de diferentes tipos de coleções.
Em breve estaremos discutindo árvores binárias, sobre as quais tenho lido. O livro afirma que a altura mínima de uma árvore binária é , mas não oferece mais explicações.
Alguém pode explicar o porquê?
data-structures
binary-trees
discrete-mathematics
trees
CodyBugstein
fonte
fonte
Respostas:
Uma árvore binária possui 1 ou 2 filhos nos nós não foliares e 0 nós nos nós foliares. Haja nós em uma árvore e temos que organizá-los de tal maneira que eles ainda formam uma árvore binária válido.n
Sem provar, estou afirmando que, para maximizar a altura, determinados nós devem ser organizados linearmente, ou seja, cada nó não-folha deve ter apenas um filho:
Aqui, a fórmula para calcular a relação da altura em termos de número de nós é direta. Se é a altura da árvore, então h = n - 1 .h h = n - 1
fonte
fonte
Para manter a altura mínima, é fácil ver que precisamos preencher todos os níveis, exceto possivelmente o último. Por quê? caso contrário, poderíamos simplesmente mover os nós do último nível para os slots vazios nos níveis superiores.
Agora, imagine que eu tenho um número não especificado de beans e lhe dou um bean de cada vez e peço que você construa uma árvore binária com a altura mínima possível. Eu posso ficar sem feijão no momento em que você preencheu o último nível completamente ou pelo menos tem um feijão no último nível. Digamos que você tenha a altura da sua árvore h neste momento.
fonte