Estou tentando provar que uma árvore binária com nós tem no máximo leaves. Como eu faria isso com indução?
Para as pessoas que estavam seguindo a pergunta original sobre pilhas, ela foi movida para aqui .
Estou tentando provar que uma árvore binária com nós tem no máximo leaves. Como eu faria isso com indução?
Para as pessoas que estavam seguindo a pergunta original sobre pilhas, ela foi movida para aqui .
Respostas:
Suponho agora que a pergunta seja a seguinte:
Vamos trabalhar com a definição de árvore . Para árvore tal, vamos o número de nós em e o número de folhas em .T N T T G T TT r e e = E m p t y ∣ L e a f| N o d e ( t r e e , o t r e e ) T nT T euT T
Você está correto ao fazer isso por indução, mas precisará de indução estrutural que segue a estrutura em árvore. Para as árvores, isso geralmente é feito como uma indução completa sobre a altura das árvores.h ( T)
A âncora de indução possui duas partes. Primeiro, para , temos T = E m p t y com l T = n T = 0 ; a reivindicação claramente vale para a árvore vazia. Para h ( t ) = 1 , isto é, T = L um e um f , que têm semelhante l T = 1 = ⌈ n th(t)=0 T=Empty lT=nT=0 h(t)=1 T=Leaf , então a reivindicação é válida para folhas.lT=1=⌈nT2⌉
A hipótese de indução é: Suponha que a reivindicação seja válida para todas as árvores (binárias) com h ( T ) ≤ k , k ≥ 1 arbitrário, mas fixo.T h(T)≤k k≥1
Para a etapa indutiva, considere uma árvore binária arbitrária com h ( T ) = k + 1 . Como k ≥ 1 , T = N o d e ( L , R ) e n t = n L + n R + 1 . Como L e R também são árvores binárias (caso contrário, T não seria) e h ( L ) , h (T h(T)=k+1 k≥1 T=Node(L,R) nT=nL+nR+1 L R T , a hipótese de indução se aplica e temh(L),h(R)≤k
Como todas as folhas de estão em L ou R , temos queT eu R
A desigualdade marcado com pode ser verificada por (quatro vias) caso distinção sobre se n G , N R ∈ 2 N . Pelo poder da indução, isso conclui a prova.( ∗ ) neu, nR∈ 2 N
Como exercício, você pode usar a mesma técnica para provar as seguintes afirmações:
fonte
Estou um pouco confuso com a pergunta. Se você está interessado em árvores com grau máximo de , que é o que a Wikipedia diz que deseja, encontramos o problema de que uma única aresta tem n = 2 nós en = 2 folhas, mas n / 2 = 1 . Enfim, aqui está algo próximo que tem um argumento fácil.3 n = 2 n = 2 n / 2 = 1
Seja uma árvore com n nós e L folhas. Como T é uma árvore, existem n - 1 arestas, e as conta duas vezes, vemos que 2 n - 2 ≤ L + 3 ( n - L ) que diz que 2 L ≤ n + 2 e isso é apertado nas duas Exemplo -vertex acima. Eu acho que se você quiser assumir que existe uma raiz de grau dois en = 3 , então você pode refinar esse argumento para dar 2 LT n eu T n - 1
fonte