Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Recommend Documents
tecniche utili per la progettazione e l'analisi di algoritmi e strutture dati ...
linguaggio C++, gli algoritmi, le tecniche di programmazione e le strutture dati
basilari.
ALGORITMI E STRUTTURE DI DATI. Corso di laurea in matematica. Anno
accademico 2006/07. Indice. Capitoli. Introduzione. 1-3. Sistemi lineari. 4-7.
Algoritmi e strutture dati da Demetrescu et al. McGraw Hill 2004. 9. Leonardo da
Pisa, detto Fibonacci c. 1180-1250). Luigi Laura. Algoritmi e strutture dati.
Vento, Pasquale Foggia: Algoritmi e Strutture dati: Astrazione, Progetto e ..... che
una definizione nel linguaggio C. Parallelamente, per ogni algoritmo `e fornita.
Algoritmi e Strutture Dati II ... L'algoritmo che calcola i valori c[1],c[2],...c[n] `e
facilmente ricavabile .... L'algoritmo che calcola i valori di c[i, j] `e il seguente.
Algoritmi. Dati. Output. Input. Di Berardini, Merelli. Algoritmi e Strutture Dati .....
dizionari pile e code liste alberi. Algoritmo di visita in profondit`a. A. B. C. D. E. H.
1 Introduzione agli algoritmi e alle strutture dati. 1 ..... C'`e uno stretto legame
pure tra algoritmi e strutture dati, in quanto le strutture dati costituiscono gli.
Fondamenti dell'informatica. Algoritmi e Strutture Dati a cura di Bruno Bertaccini
insegnamento di. Gestione Informatica dei Dati. CdL in Scienze Turistiche.
22 feb 2007 ... Appunti per il corso di Algoritmi e Basi di Dati. a.a. 2008/2009. Modulo di
Algoritmi e Strutture Dati. Nicoletta De Francesco, Luca Martini.
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati. &. Laboratorio di Algoritmi e Programmazione. Esercizi
II parte. Esercizio 1. Discutere la correttezza di ciascuna delle seguenti ...
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validit`a delle risposte date. 1. La ricerca di una chiave in un albero R/B ha complessit`a asintotica lineare nel numero dei nodi dell’albero. 2. La ricerca di una chiave in un max-heap binario ha complessit`a asintotica lineare nel numero dei nodi dell’albero. 3. L’inserimento di una chiave in un BST ha complessit`a asintotica lineare nel numero dei nodi dell’albero. 4. La ricerca di una chiave in un array ordinato ha complessit`a asintotica logaritmica nel numero di elementi dell’array.
Soluzione 1. La ricerca di una chiave in un albero R/B ha complessit`a asintotica lineare nel numero dei nodi dell’albero. No, la complessit` a asintotica `e lineare nell’altezza (come `e stato dimostrato per tutti i BST) e negli alberi R/B tale altezza `e logaritmica nel numero dei nodi. 2. La ricerca di una chiave in un max-heap binario ha complessit`a asintotica lineare nel numero dei nodi dell’albero. S`ı, la condizione di max-heap, nel caso peggiore in cui la chiave cercata non `e presente ed `e minore di tutte le chiavi presenti, richiede la visita di tutti gli elementi. 3. L’inserimento di una chiave in un BST ha complessit`a asintotica lineare nel numero dei nodi dell’albero. S`ı, la complessit` a dell’operazione di inserimento `e lineare nell’altezza che `e, nel caso peggiore, lineare nel numero di nodi. 4. La ricerca di una chiave in un array ordinato ha complessit`a asintotica logaritmica nel numero di elementi dell’array. S`ı, perch`e possiamo applicare l’algoritmo di ricerca binaria.
Esercizio 2 1. In quanto tempo `e possibile trovare una chiave in un albero R/B di n elementi? Giustificare la risposta. 2. Dato il seguente albero BST 15 /
\
/
\
8 / 5 / 2
37 / \
\ 13 \ 7
\ 14
20 \ 28
45 / 40
si consideri l’inserimento della chiave 16 seguito dalla cancellazione della chiave 8 e si disegni l’albero risultante.
Soluzione 1. La risposta corretta `e Θ(lg n), dato che un albero R/B `e un BST bilanciato. 2. L’albero finale `e: 15 / / 13 / 5 / \ 2
\ \
\ 14 7
/ 20 / \ 16 28
37 \ 45 / 40
Esercizio 3 Sia T un albero generale i cui nodi hanno chiavi intere e gli attributi: chiave, figlio, fratello. Scrivere un algoritmo che trasforma T raddoppiando i valori di tutte le chiavi sui livelli dispari dell’albero.
Soluzione Si tratta di realizzare una visita dell’albero che tiene conto del livello del nodo considerato. La chiamata esterna sar`a trasforma(root[T],false), assumendo che la radice si trovi sul livello 0 (pari). trasforma(x,raddoppia) if x =/= NIL then if raddoppia then chiave[x] 1 then root