Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SOLUZIONE
Partendo dal codice per la visita di un albero generico presente nelle slide, è sufficiente
aggiungere la parte per il calcolo dell’altezza (calcolata dalle foglie e restituita al nodo padre) e
del suo massimo:
int MaxAltezzaFigli=0, c;
for (GTNode<Elem>* temp = subroot->leftmost_child(); temp != NULL;
temp = temp->right_sibling()){
c=calcolaAltezza(temp);
if (c > MaxAltezzaFigli)
MaxAltezzaFigli=c;
}
return MaxAltezzaFigli + 1;
}
Esercizio 2 (1 punto)
Data la seguente sequenza di chiavi, si costruisca un albero B di ordine 4.
50, 19, 41, 10, 12, 71, 64, 73, 70, 11, 45, 5,
Oltre al risultato finale si riportino i risultati intermedi dopo aver inserito i valori evidenziati.
SOLUZIONE 1 (scegliendo come valore “centrale” da mandare verso l’alto il terzo valore di 4 –
l’importante è essere coerenti per tutto l’esercizio, perché l’implementazione di un algoritmo
non sceglierebbe a caso il valore “centrale”)
41
10,19 50
41,71
10,12,19 50,64 73
12,41,71
10,11 19 50,64,70 73
64
12,41 71
5,10,11 19 45,50 70 73
10 50,70
0 1 2 3 4 5 6 7 8 9
5 10 12 8 7 2 4 3 11 6