Esercizio 7dimostrazioni sulle foglie di un albero binario proprio
In questa pagina 6
Testo (scritti del 05/02/2024, 07/02/2025, 19/09/2023, 04/09/2024 e 09/07/2024; domande ricorrenti di prima parte). Sia un albero binario proprio non vuoto con nodi, foglie e altezza .
- Dimostrare per induzione sull'altezza che .
- Dimostrare per induzione che .
- Dimostrare che , usando (senza dimostrarla) la relazione nota tra numero di nodi interni e foglie.
- Dimostrare per induzione su che in un albero qualsiasi con nodi l'altezza è uguale alla massima profondità di una foglia (scritto del 03/07/2025).
Richiami
Un albero binario è proprio se ogni nodo interno ha esattamente due figli (vedi Alberi binariAlbero binario e albero binario proprio; interfaccia; relazioni tra nodi, foglie e altezza (m = n-m+1, h+1 <= m <= 2^h, 2h+1 <= n <= 2^(h+1)-1) con dimostrazioni; visita inorder; parse tree e valutazione di espressioni; heightSum come esempio di calcolo di un'informazione più ricca.Alberi binari →). L'altezza di un nodo è per le foglie e delle altezze dei figli altrimenti. La relazione nota: il numero di nodi interni è (le foglie sono una in più dei nodi interni). Il metodo è quello dell'induzione (Principio di induzionePer dimostrare una proprietà per ogni n basta il passo base e il passo induttivo da n a n+1.Principio di induzione →, Dimostrazioni, induzione e invariantiTecniche di dimostrazione (esempio, controesempio, assurdo), induzione con casi base multipli, invarianti di ciclo (inizializzazione, conservazione, uso alla fine), schema generale per provare la correttezza; esempi svolti su arrayMax, sequenza di bit e numeri di Fibonacci.Dimostrazioni, induzione e invarianti →): si dimostra il caso più piccolo (base) e si mostra che, se la proprietà vale per alberi più piccoli, vale per l'albero costruito aggiungendo una radice sopra due sottoalberi; il confronto tra potenze di usa Esponenziale e logaritmoLa funzione esponenziale a^x (base positiva diversa da 1) e la sua inversa, il logaritmo in base a, con grafici e proprietà.Esponenziale e logaritmo →. Piccoli casi per orientarsi (alberi propri di altezza ): una foglia (); radice e due foglie (); da (pettine) a (perfetto).
1.
Induzione sull'altezza . Si fissa la proprietà : ogni albero binario proprio di altezza ha al più foglie.
- Base : l'albero è una sola foglia (la radice), ✓.
- Passo. Sia e si assuma per ogni . Sia di altezza : la radice è un nodo interno con sottoalberi propri di altezze , con , quindi . Per ipotesi induttiva e (la seconda disuguaglianza perché e la funzione è crescente). Le foglie di sono quelle di e , quindi ✓.
2.
Induzione sull'altezza. : ogni albero proprio di altezza ha almeno foglie.
- Base : ✓.
- Passo. di altezza con sottoalberi : uno dei due, diciamo , ha altezza esattamente (perché ). Per ipotesi . Il sottoalbero , essendo non vuoto, ha almeno una foglia, . Quindi , che è il valore richiesto per l'altezza ✓. Controllo con : radice con due foglie ha ; con il pettine (radice con una foglia e un sottoalbero di altezza ) ha .
3.
Dalla relazione nota, il numero di nodi interni è , quindi . Con il punto 2: .
Dimostrazione diretta alternativa. Un cammino dalla radice a una foglia di profondità contiene nodi interni e una foglia. Ogni nodo interno ha due figli, e uno solo sta sul cammino: l'altro è un nodo fuori dal cammino, e questi nodi sono tutti distinti. Quindi (il cammino ha nodi, e i fratelli fuori dal cammino sono altri : uno per ognuno degli nodi interni del cammino).
Il limite è raggiunto da un albero "a pettine" in cui ogni nodo interno ha una foglia come figlio (esempio: , , ).
4. Altezza e massima profondità delle foglie (albero qualsiasi)
Induzione su . Si usa l'induzione "forte": vale se per ogni albero con nodi .
- Base : la sola radice è anche l'unica foglia, altezza e profondità ✓.
- Passo. con nodi ha radice con figli e sottoalberi con meno di nodi ciascuno. L'"induzione forte" assume la proprietà per tutti gli alberi con meno nodi (non solo per quello con nodi), perché i sottoalberi hanno numeri di nodi diversi e non fissati. Le foglie di sono le foglie dei e per ognuna . Per ipotesi induttiva la massima profondità delle foglie di in è . Quindi per definizione di altezza ✓.
Errori comuni
- Nella base mettere senza dimostrare il caso .
- Nel passo scrivere senza specificare che le due altezze sono (non necessariamente uguali).
- Nel punto 2 dimenticare di usare che un sottoalbero ha altezza esattamente (serve per applicare l'ipotesi con foglie).
- Applicare le relazioni ad alberi non propri.
Versione ripasso
Testo. binario proprio con nodi, foglie, altezza : provare (1) , (2) (induzione sull'altezza), (3) usando , (4) in un albero qualsiasi l'altezza è la massima profondità delle foglie (induzione su ).
- (1) base : . Passo: di altezza ha sottoalberi di altezze ⇒ (vedi Alberi binariAlbero binario e albero binario proprio; interfaccia; relazioni tra nodi, foglie e altezza (m = n-m+1, h+1 <= m <= 2^h, 2h+1 <= n <= 2^(h+1)-1) con dimostrazioni; visita inorder; parse tree e valutazione di espressioni; heightSum come esempio di calcolo di un'informazione più ricca.Alberi binari →).
- (2) base . Passo: un sottoalbero ha altezza (), l'altro ⇒ .
- (3) . Alternativa: il cammino radice-foglia più lungo ha nodi interni, ognuno con un figlio fuori dal cammino ⇒ .
- (4) base : altezza = profondità . Passo: foglie in con ⇒ massimo .
- Errori: base omessa; altezze non limitate da ; sottoalbero di altezza non usato nel punto 2.