Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Albero binario
Struttura di dati bidimensionale formata da
Alberi binari nodi costituiti ciascuno dai dati da
memorizzare e da due link
(introduzione)
Ver. 2.4
3 4
7
Rimozione di un valore 8
Il nodo da eliminare ha un solo nodo figlio Il nodo da eliminare ha due nodi figli - 1/7
Nel nodo padre (26) al puntatore al nodo Si identifica l’elemento da rimuovere (19)
figlio da rimuovere (31) viene assegnato il
puntatore all’unico figlio (40) del nodo da
rimuovere (31)
26 26
19 31 19 free! 26
12 22 40 12 22 40 19 31
15 35 15 35 12 22 40
10 15 35
14
Rimozione di un valore 11
Rimozione di un valore 12
Il nodo da eliminare ha due nodi figli - 2/7 Il nodo da eliminare ha due nodi figli - 3/7
Si cerca il nodo sostitutivo (15): è il nodo Il link del padre (26) al nodo da rimuovere
contenente il più grande valore minore di (19) viene fatto puntare al nodo sostitutivo
quello nel nodo da rimuovere (19), lo si trova (15)
percorrendo tutto il ramo destro del suo figlio
di sinistra
26 26
19 31 19 31
12 22 40 12 22 40
10 15 35 10 15 35
14 14
Rimozione di un valore 13
Rimozione di un valore 14
Il nodo da eliminare ha due nodi figli - 4/7 Il nodo da eliminare ha due nodi figli - 5/7
Il link destro del padre (12) del nodo Il link destro del nodo sostitutivo (15) viene
sostitutivo viene fatto puntare al sottoalbero fatto puntare al sottoalbero destro (22) del
sinistro del nodo sostitutivo (14), se non c’è si nodo da sostituire, il link sinistro al sinistro
mette NULL. N.B. non può esserci il (12)
sottoalbero destro
26 26
19 31 19 31
12 22 40 12 22 40
10 15 35 10 15 35
14 14
Rimozione di un valore 15
Rimozione di un valore 16
Il nodo da eliminare ha due nodi figli - 6/7 Il nodo da eliminare ha due nodi figli - 7/7
Si dealloca il nodo da rimuovere Risultato finale
26 26
free! 31 15 31
12 22 40 12 22 40
10 15 35 10 14 35
14
17 18
Bilanciamento Esercizi
La forma dell’albero cambia a seconda 1. Si scriva un programma costruisca un albero
dell’ordine con cui vengono memorizzati i binario introducendo dei valori. I valori
valori duplicati vengano conteggiati. Si scrivano
Un albero bilanciato è circa simmetrico e il funzioni per:
tempo di ricerca è logaritmico rispetto al 1. la visita dell’albero nei modi: inOrder, preOrder e
numero dei valori memorizzati postOrder
2. la ricerca di un elemento
Se i valori vengono introdotti già ordinati la
struttura dell’albero degenera in una lista e il
tempo di ricerca è lineare
19
Esercizi
2. Scrivere un programma che analizzi un testo
memorizzando e contando ogni occorrenza
delle parole che lo costituiscono. Si usi una
struttura ad albero che tenga conto del
numero delle ripetizioni delle parole. L’output
finale delle parole ordinate alfabeticamente
con il corrispondente numero di ripetizioni
avvenga in un file di testo sequenziale.