Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lezione 9
Gli alberi binari
Oggi parleremo di …
/ / / / / /
/ / / /
dati
figlio figlio
sinistro destro nodo
Visita in profondità di un albero
- ^
/ * E F
A B C D
A / B - C * D + E ^ F
Visita in profondità di un albero
- ^
/ * E F
A B C D
+ - / A B * C D ^ E F
Visita in profondità di un albero
- ^
/ * E F
A B C D
A B / C D * - E F ^ +
Visita in profondità di un albero
2 3 - ^
4 5 6 7 / * E F
8 9 10 11 12 13 14 15 A B C D
+ - ^ / * E F A B C D
Visita in ampiezza di un albero
La visita in ampiezza
utilizza una coda
circolare algoritmo level_order(nodo r)
si inserisce la radice // Utilizza una coda C con accesso agli estremi
nella coda // dietro 0 e davanti 0
- ^
+ - ^ / * E F A B C D
/ * E F
A B C D D
B C D
F A B C D
* E F A B C D
^ / * E F A B C D
+ - ^ / * E F A B C D
Altre operazioni …
Creazione di un albero binario
algoritmo crea(nodo r)
dati di r un valore ai dati del nodo r
if (nodo r ha un figlio sinistro) then
nodo_alloc allocazione di un nuovo nodo
figlio sinistro di r nodo_alloc
crea(nodo_ alloc)
else figlio sinistro di r NULL
if (nodo r ha un figlio destro) then
nodo_alloc allocazione di un nuovo nodo
figlio destro di r nodo_ alloc
crea(nodo_ alloc)
else figlio destro di r NULL
18