Algoritmi e Strutture Dati I
Quarto Appello -- 28 Giugno 1999
PARTE I
Esercizio 1. (8 punti)
Un albero binario completo è caratterizzato dall'avere le
foglie tutte allo stesso livello e i nodi interni con esattamente due
figli. Dimostrare per induzione che un albero binario completo di
altezza ha foglie e nodi interni.
Esercizio 2. (7 punti)
Dato lo heap:
|
40 | 20 | 30 | 15 | 12 | 18 | 10 | 7 | 9 | 1 |
riportare la configurazione dello
heap dopo ogni scambio di chiavi, per realizzare le tre operazioni:
- inserire 32
- inserire 35
- eliminare 40.
PARTE II
Esercizio 3. (7 punti)
In riferimento alle funzioni hash con indirizzamento aperto a
scansione lineare, spiegare brevemente:
- cosa sono gli agglomerati (o cluster);
- perché gli agglomerati di lunghezza maggiore tendono a
crescere più velocemente degli altri quando vengono effettuate
delle inserzioni successive.
Esercizio 4. (8 punti)
Dato un grafo non orientato , si deve eliminare un
vertice con tutti gli archi ad esso incidenti.
- Assumendo che il grafo sia rappresentato con liste di adiacenza,
realizzare tale operazione sotto forma di procedura in Pascal o
pseudocodice, con parametri di ingresso e . Valutare e
motivare la complessità asintotica della soluzione proposta.
- Descrivere a parole l'operazione quando il grafo è invece
rappresentato con matrici di adiacenza, e determinarne la
complessità.
Roberto Grossi, Luglio 1999