Dimostrare che un albero binario ha al massimo foglie


14

Sto cercando di dimostrare che un albero binario con nodi ha al massimo foglie. Come farei per fare questo con l'induzione?nnn2

Per le persone che stavano seguendo la domanda originale sui cumuli, è stato spostato qui .


3
Innanzitutto, nota che possiamo usare LaTeX qui. Fai clic su "modifica" per vedere come l'ho fatto. In secondo luogo, non vedo un'induzione. Stai lanciando alcuni numeri lì intorno ma non c'è alcuna struttura di prova e nessuna relazione con i cumuli. Puoi migliorarlo? Infine, l'affermazione è sbagliata: un elenco ordinato soddisfa la proprietà heap e ha solo una foglia. Hai tralasciato alcuni presupposti?
Raffaello

La modifica di @ Kaveh è ciò che avevi in ​​mente, ovvero "al massimo"?
Raffaello

@Raphael, leggendo di nuovo la domanda, penso che potrebbe trattarsi di cumuli in cui ogni nodo interno ha esattamente due figli (nel qual caso la domanda originale ha senso e l'affermazione è corretta, o qualcosa di simile).
Kaveh,

1
@Kaveh Ah sì, vedo la tua confusione. I nodi dell'heap hanno al massimo due figli (da cui il tag dell'albero binario)
varatis

1
Vedo. Con l'affermazione formulata in modo preciso, non sono effettivamente necessari ulteriori presupposti. La proprietà vale infatti per tutti gli alberi binari.
Raffaello

Risposte:


7

Presumo ora che la domanda sia la seguente:

Dato un albero binario con nodi, dimostra che contiene al massimo nnfoglie.n2

Lavoriamo con la definizione dell'albero . Per T tale albero a, lasciate n T il numero di nodi in T e l T il numero di foglie in T .Tree=EmptyLeafNode(Tree,Tree)TnTTlTT

Hai ragione a farlo per induzione, ma avrai bisogno di un'induzione strutturale che segua la struttura ad albero. Per gli alberi, questo viene spesso fatto come induzione completa sull'altezza degli alberi.h(T)

L'ancoraggio a induzione ha due parti. Innanzitutto, per abbiamo T = E m p t y con l T = n T = 0 ; l'affermazione vale chiaramente per l'albero vuoto. Per h ( t ) = 1 , cioè T = L e a f , allo stesso modo abbiamo l T = 1 = n Th(t)=0T=EmptylT=nT=0h(t)=1T=Leaf, quindi l'affermazione vale per le foglie.lT=1=nT2

L'ipotesi di induzione è: supponiamo che l'affermazione valga per tutti gli alberi (binari) con h ( T ) k , k 1 arbitrario ma fisso.Th(T)kk1

Per la fase induttiva, considera un albero binario arbitrario con h ( T ) = k + 1 . Come k 1 , T = N o d e ( L , R ) e n T = n L + n R + 1 . Poiché L e R sono anche alberi binari (altrimenti T non sarebbe) e h ( L ) , h (Th(T)=k+1k1T=Node(L,R)nT=nL+nR+1LRT , si applica e si ha l'ipotesi di induzioneh(L),h(R)k

lLnL2 and lRnR2.

Dato che tutte le foglie di sono in L o R , lo abbiamoTLR

lT=lL+lRnL2+nR2nL+nR+12()=nT2

La diseguaglianza contrassegnati con possono essere controllati (quattro vie) caso distinzione sopra se n L , n R2 N . Con il potere dell'induzione, questo conclude la prova.()nL,nR2N


Come esercizio, puoi usare la stessa tecnica per provare le seguenti affermazioni:

  • Ogni albero binario perfetto di altezza ha 2 h - 1 nodi.h2h1
  • Ogni albero binario completo ha un numero dispari di nodi.

2

Sono un po 'confuso dalla domanda. Se sei interessato ad alberi con un massimo di , che è quello che Wikipedia dice che vuoi, allora incontriamo il problema che un singolo bordo ha n = 2 nodi e n = 2 foglie, ma n / 2 = 1 . Comunque, ecco qualcosa di simile che ha un argomento facile. 3n=2n=2n/2=1

Sia un tale albero con n nodi e L foglie. Poiché T è un albero, ci sono n - 1 spigoli e contando due volte, vediamo che 2 n - 2 L + 3 ( n - L ) che dice che 2 L n + 2 e questo è stretto nei due -vertex esempio sopra. Immagino che se vuoi assumere che ci sia una radice di grado due e n 3 , allora puoi affinare questo argomento per dare 2 LTnLTn-1

2n-2L+3(n-L)
2Ln+2
n3 che è quello che stai cercando, e questo è stretto quando l'albero è pieno.
2Ln+1

Immagino che qui in silenzio assumiamo alberi radicati; Anche Wikipedia lo fa.
Raffaello

1
Wikipedia in qualche modo equivoca, dicendo: "Fuori dall'albero, c'è spesso un riferimento al nodo" radice "(l'antenato di tutti i nodi), se esiste." Ad ogni modo, questo argomento sembra degno di nota, poiché è diverso e abbastanza semplice.
Louis,

Se continui a leggere, tutti i bordi sono diretti, parlano di "bambini" e "genitori". Ciò non ha senso sugli alberi senza radici. Di conseguenza, una foglia sarebbe un nodo con un livello superiore a 0.
Raffaello
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.