Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lezione 8
Gli alberi
Oggi parleremo di …
Gli alberi
definizione
elementi di un albero
rappresentazione
Alberi binari
definizione
proprietà
rappresentazione
mediante array
mediante collegamenti
Le strutture dati Alberi
B C D
E F G H
I J K L M
Gli alberi: definizioni
Nodo: i nodi sono costituiti sia dalle Foglia: sono i nodi aventi grado nullo
informazioni che dai rami che si (sono detti anche nodi terminali).
collegano ad altri nodi. Padre: un nodo di grado non nullo è
Grado di un nodo: è il numero di padre delle radici dei sottoalberi.
rami del nodo. Fratelli: sono i nodi aventi lo stesso
Grado di un albero: è il massimo padre.
valore dei gradi di ciascun suo nodo.
A
B C D
E F G H
I J K L M
Gli alberi: definizioni
B C D
La profondità è 4
E F G H
I J K L M
Gli alberi: rappresentazione
B C D B
E F G H E C
I J K L M F G D
A
I H
B C D
J K
E F G H
L
I J K L M
albero figlio a sinistra - fratello a destra albero binario M
Gli alberi binari: definizione
B B
Operazioni:
Create( ) AlBin
crea un albero binario vuoto
IsEmpty(ab) Booleano
if (ab = albero binario vuoto) return TRUE else return FALSE.
CreaAB(ab1, item, ab2) AlBin
return un albero binario il cui sottoalbero sinistro è ab1, il cui sottoalbero destro è ab2 e
il cui nodo radice contiene il dato item.
FiglioSx(ab) AlBin
if (IsEmpty(ab)) return errore else return il sottoalbero sinistro di ab.
Dati(ab) elemento
if (IsEmpty(ab)) return errore else return i dati nel nodo radice di ab.
FiglioDx(ab) AlBin
if (IsEmpty(ab)) return errore else return il sottoalbero destro di ab.
Gli alberi binari: proprietà
2 i 1
i 1
2 k
1.
2 3
4 5 6 7
8 9 10 11 12 13 14 15
2 3
4 5 6 7
8 9 10 11
1
Una possibile 2
rappresentazione degli alberi 3
Tale rappresentazione è 10
11
possibile per tutti gli alberi ma 8
12
ci sarà spazio sprecato.
13
14
15
Rappresentazione degli alberi binari
dati
figlio figlio
sinistro destro nodo
/ / / / / /
/ / / /
dati
figlio figlio
sinistro destro nodo
Riassumendo …
22