Prova di Algoritmi e Strutture Dati II
Non si possono consultare né appunti né testi
Appello
18 Giugno 2010
Esercizio 1. (punti 12) Abbiamo visto a lezione il metodo analogo alla moltiplicazione di matrici
per calcolare i cammini di peso minimo fra tutte le coppie di un grafo orientato e pesato. Si
proponga un metodo analogo alla moltiplicazione vettore-matrice per calcolare i cammini di
peso minimo da una sorgente s a tutti i vertici di un grafo orientato e pesato. Studiare la
complessità computazionale della soluzione proposta.
Esercizio 2. (punti 10) Dato un grafo G non orientato, i cui archi sono pesati con la funzione
w : E → R, progettare e scrivere lo pseudo-codice di un algoritmo che dato G ritorna un
albero di copertura di costo minimo T . Discutere la complessità in tempo della soluzione
proposta.
Si provi o si dia un controesempio per la seguente affermazione: Tutti gli archi di costo
negativo sono in T
Esercizio 3. (punti 8)
• Si dia la definizione ricorsiva di albero binomiale Bk . Quanti nodi
vi sono al livello h, con 0 ≤ h ≤ k, in un Bk ?
• Disegnate una foresta binomiale di 14 nodi.
• Si scriva lo pseudo-codice dell’operazione decrease-key in uno heap binomiale. Se ne
discuta la complessità in tempo.