• Non ci sono risultati.

Pag. 1 Cognome e Nome:

N/A
N/A
Protected

Academic year: 2021

Condividi "Pag. 1 Cognome e Nome:"

Copied!
2
0
0

Testo completo

(1)

Prova scritta del 15 Febbraio 2006 Laboratorio di Algoritmi e Strutture Dati

Anno Accademico 2005/2006 Matricole Dispari-Pari e Pari-Dispari

Pag. 1

Cognome e Nome: Docente:

Numero di Matricola:

Spazio riservato alla correzione

1 2 3 4 5 6 totale

/10 /10 /14 /10 /16 /30 /90

1. [10 punti] Scrivere la funzione

Stack flip(Stack S, int i)

Che restituisce un nuovo stack in cui è invertito l’ordine dei primi i elementi dello stack S. Ad esempio se S = <5, 3, 7, 1, 9, 4> (5 è al top), allora flip(S,4) restituisce lo stack <1, 7, 3, 5, 9, 4>.

Lo stack S alla fine dell’esecuzione di flip non deve risultare modificato. Il metodo deve lanciare le opportune eccezioni.

2. [10 punti] Aggiungere alla classe NodeSequence che implementa l’interfaccia Sequence il metodo public boolean contains(Object x)

che restituisce true se x appartiene alla sequenza su cui il metodo è invocato e false altrimenti.

3. [14 punti] Aggiungere alla classe BinarySearchTree che implementa l’interfaccia Dictionary mediante un albero binario di ricerca il metodo

Entry min();

che restituisce la voce del dizionario con chiave più piccola. Il metodo deve essere implementato utilizzando solo i metodi delle interfacce BinaryTree e Dictionary ad esclusione dei metodi elements, positions ed entries.

4. [10 punti] Aggiungere alla classe MyDictionary che implementa l’interfaccia Dictionary il metodo

public Iterator removeAll(Objec key) throws InvalidKeyException;

che rimuove tutte le voci del dizionario con chiave key e restituisce un iteratore delle voci rimosse. Il metodo deve essere implementato usando solo i metodi delle interfacce studiate.

5. [16 punti] Aggiungere alla classe LinkedBinaryTree che implementa l’interfaccia BinaryTree il metodo

BinaryTree clone();

che restituisce una copia dell’albero.

(2)

Prova scritta del 15 Febbraio 2006 Laboratorio di Algoritmi e Strutture Dati

Anno Accademico 2005/2006 Matricole Dispari-Pari e Pari-Dispari

Pag. 2 6. [30 punti]

[20 punti] Provare il seguente teorema .

Se f è un flusso in una rete di flusso G con sorgente s e destinazione t, allora le seguenti condizioni sono equivalenti:

1. f è un massimo flusso in G 2. Gf non contiene augmenting path

3. |f|= c(S,T) per un taglio (S,T)

[10 punti] Applicare l’algoritmo di Edmonds-Karp alla seguente rete di flusso. Illustrare graficamente tutti i passaggi dell’algoritmo (rete residua, cammino aumentante, rete di flusso).

s

v u

t

10

3

7 7

8

s

v u

t

10

3

7 7

8

Riferimenti

Documenti correlati

[r]

 Impostare Studente.corsoLaurea = nome; è corretto (metodo statico, campo statico)... Metodi statici privati.  A volte un

prendere decisioni o svolgere attività inerenti alle sue mansioni in situazioni, anche solo apparenti, di conflitto di interessi. Egli non svolge alcuna attività che contrasti con

Come per un dado a sei facce, la somma dei numeri sulle due facce parallele deve essere sempre la stessa.. Riprodurre il modello di un tale dado, numerarne le facce e

[r]

Sia X una variabile aleatoria di legge Binomiale di parametri n=121

Sia x1,...,x6 un campione estratto da una popolazione di legge normale di media e varianza sconosciute i cui valori sono riportati sotto2. 2.8 2.5 4.2 4

Effettuare un test dell'ipotesi che la media valga 130 contro l'alternativa che sia diversa da 130 a livello