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.”