Algoritmi e Strutture Dati
Astrazione, progetto e realizzazione
Errata Corrige
P. Foggia, M. Vento
27 luglio 2012
• Capitolo 2, Pag. 29 Listato 2.4
la frase “divisione in testa” diventa “divisione doppia”
• Capitolo 3, Pag. 43, rigo 3
la frase “elementi è 1000 volte” diventa “elementi è 100 volte”
• Capitolo 3, Pag. 62, dopo la formula 3.40
la frase “vedi figura 3.9” diventa “vedi figura 3.10”
• Capitolo 3, Pag. 62, dopo la formula 3.41
la frase “vedi figura 3.11” diventa “vedi figura 3.9”
• Capitolo 3, Pag. 62, dopo la formula 3.42
la frase “vedi figura 3.10” diventa “vedi figura 3.11”
• Capitolo 3, Pag. 65, Figura 3.12
L’istruzione “ris1 = funz(D-12)” diventa “ris1 = funz(D-1)”; nella didascalia
la frase “tempi lineari” diventa “tempi costanti” e la frase “in due parti
eguali” diventa “due parti di dimensione 1 e D − 1”
• Capitolo 3, Pag. 66, rigo 12
La frase “Per il terzo tipo di ricorrenza 3.43, considerando n/2 > 1 (ovvero
n > 2), dalla 3.43 si ha.” diventa “Per il terzo tipo di ricorrenza 3.42,
considerando n/2 > 1 (ovvero n > 2), dalla 3.42 si ha:”
• Capitolo 3, Pag. 66, sostituire gli ultimi nove righi della pagina con il testo
seguente:
Osservando che la ricorrenza si chiude quando n = 2k , ovvero quando
k = log2 (n), e che in tal caso T (n) = c1 , si ottiene:
log2 (n)−1
T (n) = c1 + nc2
X
i=0
1
2i
Ricordando la formula matematica (cf. equazione 1.13 a pag. 7) che consente
di calcolare la somma dei primi m + 1 termini della progressione geometrica
i
di ragione q, ponendo q = 2, si ottiene:
m
X
2i = 2m+1 − 1
i=0
Da quest’ultima equazione, con semplici passaggi matematici si ha che:
m
m
X
1 X m−i
1
2m+1 − 1
=
2
=
i
m
2
2 i=0
2m
i=0
A questo punto, sostituendo l’espressione della sommatoria ottenuta nella
precedente espressione di T (n) con m = log2 (n) − 1, si ha:
T (n) = c1 + nc2
2log2 (n)−1+1 − 1
2(n − 1)
= c1 + nc2
n
2log2 (n)−1
poiché per elevati valori di n,
2(n−1)
n
≈ 2, si ha:
T (n) = c1 + 2nc2
• Capitolo 3, Pag. 67, rigo 3
Sostituire la frase “Per il quarto tipo di ricorrenza 3.42, considerando n/2 > 1
(ovvero n > 2), dalla 3.42 si ha:” con la frase “Per il quarto tipo di ricorrenza
3.43, considerando n/2 > 1 (ovvero n > 2), dalla 3.43 si ha:”
• Capitolo 3, Pag. 67, tre righi prima della formula 3.49
la frase “ovvero n = k” diventa “ovvero k = n − 1” e la formula “T (n) =
c1 + nc2 ” diventa “T (n) = c1 + (n − 1)c2 ”
• Capitolo 4, Pag. 97, rigo 2
la frase “non è minore o uguale” diventa “è minore o uguale”
• Capitolo 4, Pag. 98, rigo 3
la frase “che il corpo primo ciclo” diventa “che il corpo del primo ciclo”
• Capitolo 5, Pag. 136, inizio paragrafo 5.2.4
la parola “spazionale” diventa “spaziale”
• Capitolo 5, Pag. 138, rigo 20
la frase “avremo k ridimensionamenti, e applicando l’equazione 3.15” diventa
“avremo k riallocazioni, e applicando l’equazione 3.15”
• Capitolo 6, Pag. 173, rigo 1
il nome del paragrafo “Implementazione dell’algoritmo di inserimento in
una lista ordinata” diventa “Implementazione dell’algoritmo di ricerca di
un elemento in una lista ordinata”
• Capitolo 6, Pag. 187, rigo 10
la frase “il puntatore di testa a l’ e pertanto” diventa “il puntatore di testa
a l0 e pertanto”
• Capitolo 6, Pag. 195, esercizio 6.14
la frase “sssume il valore NULL” diventa “assume il valore NULL”
• Capitolo 6, Pag. 195, esercizio 6.14
il prototipo della funzione è:
TList list_delete_at_node(TList list, TNode *prev)
• Capitolo 6, Pag. 196, esercizio 6.16
Eliminare la frase “Si impieghi la funzione definita nell’esercizio precedente”
• Capitolo 7, Pag. 200, 3 righi dopo la fine della sezione Esempio
la frase “e il numero K di chiavi” diventa “e il numero k di chiavi”
• Capitolo 7, Pag. 200, 3 righi dopo la fine della sezione Esempio
la frase “Il vettore V dovrà contenere K elementi di cui solo m sono realmente
impiegate” diventa “Il vettore V dovrà contenere m elementi di cui solo k
sono realmente impiegati”
• Capitolo 7, Pag. 204, terzultimo rigo
la frase “caso di indirizzamento chiuso)” diventa “caso di indirizzamento
aperto)”
• Capitolo 7, Pag. 212, listato 7.8
alla fine della didascalia aggiungere la frase:
“Il listato della funzione list_insert_at_index è definito nella soluzione
dell’esercizio 6.11 a pag. 346.”