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).
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 . 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 ✓.
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 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. 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.