30.05.2013 Views

Appunti per il modulo di algoritmi e strutture dati - Sezione di ...

Appunti per il modulo di algoritmi e strutture dati - Sezione di ...

Appunti per il modulo di algoritmi e strutture dati - Sezione di ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Dato un albero con ra<strong>di</strong>ce p e sottoalberi A1, . . . , An,<br />

• p è padre della ra<strong>di</strong>ce <strong>di</strong> ogni Ai;<br />

• la ra<strong>di</strong>ce <strong>di</strong> ogni Ai è l’i-esimo figlio <strong>di</strong> p;<br />

• un nodo che non ha sottoalberi è una foglia;<br />

Si noti che in un albero generico l’or<strong>di</strong>ne tra i figli <strong>di</strong> ciascun nodo è significativo. Le definizioni <strong>di</strong><br />

antecedente, <strong>di</strong>scendente e livello sono uguali a quelle <strong>per</strong> gli alberi binari. Da ora in poi considereremo<br />

solo alberi generici etichettati. Un esempio <strong>di</strong> albero generico è mostrato in figura 6.<br />

Anche le proprietà degli alberi generici e dei programmi che li manipolano possono essere <strong>di</strong>mostrati<br />

con l’induzione strutturale:i casi base sono gli alberi composti da un solo nodo; Il passo induttivo suppone<br />

vera la proprietà sugli alberi A1, . . . , An e la <strong>di</strong>mostra vera sull’albero composto da un nodo e A1, . . . , An<br />

come sottoalberi.<br />

Esempio 7.1 (induzione strutturale su alberi generici)<br />

Dimostriamo che in un albero <strong>il</strong> numero dei no<strong>di</strong> è uguale ad uno più la somma dei gra<strong>di</strong> dei no<strong>di</strong>, dove<br />

<strong>il</strong> grado <strong>di</strong> un nodo è <strong>il</strong> numero dei suoi figli. Dato un albero A, in<strong>di</strong>chiamo con N(A) <strong>il</strong> numero dei suoi<br />

no<strong>di</strong>, con G(A) la somma dei gra<strong>di</strong> dei suoi no<strong>di</strong> e con G(p) <strong>il</strong> grado <strong>di</strong> un nodo p. Vogliamo <strong>di</strong>mostrare<br />

che, <strong>per</strong> ogni A, N(A) = G(A) + 1.<br />

• Base. Se l’albero è formato da un solo nodo, questo ha grado 0 e quin<strong>di</strong> la proprietà è verificata.<br />

• Induzione. Consideriamo un albero A con ra<strong>di</strong>ce p e sottoalberi della ra<strong>di</strong>ce A1, . . . , An. Ipotesi:<br />

Per ogni 1 ≤ i ≤ n, N(Ai) = G(Ai) + 1.<br />

Tesi: N(A) = G(A) + 1.<br />

Dim. N(A) = N(A1) + . . . + N(An) + 1<br />

= G(A1) + 1 + . . . + G(An) + 1 + 1 <strong>per</strong> ipotesi induttiva<br />

= G(A1) + . . . + G(An) + n + 1<br />

= G(A1) + . . . + G(An) + G(p) + 1 <strong>per</strong>chè G(p) = n<br />

= G(A) + 1 <strong>per</strong> definizione <strong>di</strong> grado<br />

✓✏<br />

✟<br />

A<br />

✟<br />

✒✑ ❍<br />

❍❍❍❍<br />

✟<br />

✓✏ ✟<br />

✓✏ ✓✏<br />

B C D<br />

✒✑ ✒✑ ✒✑<br />

✁ ❆<br />

✓✏ ✁ ✓✏ ❆ ✓✏<br />

E F G<br />

✒✑ ✒✑ ✒✑<br />

Figura 6: Esempio <strong>di</strong> albero<br />

È importante notare come un albero binario non sia un caso particolare <strong>di</strong> albero generico, ma un tipo<br />

<strong>di</strong> dato strutturalmente <strong>di</strong>verso. Questo, <strong>per</strong> esempio, vuol <strong>di</strong>re che con due no<strong>di</strong> A e B possono essere<br />

costruiti due alberi generici <strong>di</strong>fferenti, mostrati in figura 7.a), mentre possono essere costruiti quattro<br />

34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!