• 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)

II prova in itinere – 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

/14 /10 /12 /14 /10 /30 /90

1. [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.

2. [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.

3. [12 punti] Scrivere il metodo

public Entry insert(Object key, Object value) throws InvalidKeyException;

della classe che implementa una coda a priorità mediante un albero binario completo. Le voci della coda a priorità conoscono la loro posizione nell’albero.

4. [14 punti] Aggiungere alla classe LinkedTree il metodo public Iterator leaves();

che restituisce un iteratore di tutti i nodi foglia dell’albero. Il metodo non deve invocare i metodi elements e positions.

5. [10 punti] Scrivere i seguenti metodi della classe ListSet che implementa l’interfaccia Set tramite una variabile di istanza di tipo List:

[7 punti] public Set intersect(Set B);

che restituisce l’intersezione tra B e l’insieme su cui è invocato

[3 punti] public Object insert(Object element);

che inserisce element nell’insieme restituendolo in output; se element appartiene già all’insieme non effettua l’inserimento e restituisce null.

Si assuma che la classe ListSet fornisca anche i metodi

• public boolean contains(Object element) che restituisce true se element appartiene all’insieme e false altrimenti

• public Object remove() che cancella un elemento a caso dall’insieme e lo restituisce.

(2)

II prova in itinere – 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

- Che cosa significa macchia nel contesto della poesia (v.. Ministero dell’Istruzione, dell’Università e della Ricerca Istituto Magistrale Statale “A. Cairoli”.. Liceo

Tunc Romani in naves celeriter recesserunt et ultra processerunt donec (finché) in locum desertum pervenerunt, ubi ex navibus sine periculo descenderunt. Ibi castra

[r]

[r]

[r]

Metti la virgola e aggiungi gli zeri necessari affinché nel numero:.. 6 siano le unità

Leggi il testo, circonda i dati, segna con una X dove inseriresti una domanda (un colore per ciascuna domanda), scrivila nell’apposito spazio e risolvi il problema sul

costruire un albero binario di ricerca Marco Lapegna – Laboratorio di Programmazione 2 Cenni agli alberi. procedura ricerca(in: radice, e;