• Non ci sono risultati.

Spazio riservato alla correzione

N/A
N/A
Protected

Academic year: 2021

Condividi "Spazio riservato alla correzione"

Copied!
1
0
0

Testo completo

(1)

Appello del 6 Novembre 2006 Laboratorio di Algoritmi e Strutture Dati

Matricole Dispari-Pari e Pari-Dispari

Pag. 1

Cognome e Nome: Numero di Matricola:

Spazio riservato alla correzione

1 2 3 4 5 6 totale /18 7 /12 13 /15 /25 /90

Non usare altri fogli, usare solo lo spazio sottostante. Fogli differenti da questo non saranno presi in considerazione per la correzione.

1. [18 punti] Aggiungere alla classe LinkedTree (implementa l’interfaccia Tree usando come nodo la classe TreeNode ) il metodo boolean isAncestor(TreeNode n1, TreeNode n2) che restituisca inoutput true qualora n1 sia antenato di n2, false altrimenti.

2. [7 punti] Scrivere una funzione EstraiDaCoda che prende in input una coda Q di interi (Integer) ed un numero intero (Integer) n e restiuisce una coda R contenente tutti gli elementi di Q che sono multipli di n. Gli elementi di R devono comparire nello stesso ordine in cui comparivano in Q e alla fine della procedura, la coda Q deve contenere gli stessi elementi, nello stesso ordine, che conteneva in origine.

3. [12 punti] Si scriva una funzione Java ListMerge(List l1,List l2) che prende in input due liste ordinate di oggetti di tipo Integer e restituisce in output una lista ordinata che contiene gli elementi di entrambe le liste l1 e l2.

4. [13 punti] Scrivere la funzione

void updateKey(PriorityQueue Q, Object oldKey, Object newKey).

La funzione sostituisce tutte le chiavi uguali ad oldKey con newKey. La funzione non deve invocare il metodo decreaseKey. Si osservi che la funzione può modificare il contenuto di Q durante la sua esecuzione.

5. [15 punti] Visita in profondità

a. Scrivere lo pseudocodice dell’algoritmo per la visita in profondità di un grafo (DFS).

Commentare l’uso delle strutture dati utilizzate. [8 punti]

b. Indicare, giustificando la risposta, la complessità dell’algoritmo DFS. [7 punti]

6. [25 punti] La compagnia aerea AI collega N città tra di loro con voli diretti (che non effettuano scali intermedi) di andata e ritorno. Si supponga che un grafo G non direzionato completo

rappresenti i collegamenti forniti dalla compagnia aerea tra le N città: ciascun vertice rappresenta una città; un arco (u,v) indica il collegamento diretto tra la città u e la città v. Ciascun arco (u,v) ha associato un peso maggiore di zero che indica quanto la compagnia guadagna ogni anno con la gestione del collegamento diretto tra u e v. Si supponga che la compagnia aerea voglia abolire alcuni dei collegamenti diretti da una città all’altra in modo da realizzare entrambi i seguenti obiettivi:

1. data una coppia di città (u,v) esista un unico modo di viaggiare da u a v utilizzando esclusivamente voli della compagnia AI

2. massimizzare il guadagno annuale.

[18 punti] Fornire lo pseudocodice di un algoritmo che preso in input il grafo G, restituisca l’insieme dei collegamenti diretti che la compagnia AI potrebbe abolire per realizzare i suddetti obiettivi 1 e 2;

[7 punti] Descrivere le strutture dati utilizzate e analizzare la complessità dell’algoritmo.

Riferimenti

Documenti correlati

[18 punti ] Si scriva lo pseudocodice di un algoritmo che preso in input G, una città s e un intero k restituisce un array contenente le città che si trovano ad una

Scavo di sbancamento eseguito con mezzi meccanici in terreno di qualsiasi natura e consistenza, anche di massicciata stradale, compreso la rimozione di eventuali elementi in

I dati personali raccolti con il presente modello sono trattati dal Comune di Castel Guelfo esclusivamente nell’ambito delle proprie finalità istituzionali per i

Definire un algoritmo efficiente che, dato in input il grafo G = (V, E, w), la capacità P della batteria e l'array R[1..n], restituisca true se e solo se esiste un cammino

Si noti che, poiché l’albero in input seppur       sbilanciato è comunque un albero binario di ricerca, la visita in ordine simmetrico produce un vettore       in cui gli

L’algoritmo proposto, a seguito della definizione della legge di risposta della superficie riflettente e della legge di divergenza del raggio emesso dal laser terrestre, corregge

Le rilevazioni furono fatte sulle finestre termiche periferiche (pinna dorsale, coda e pinna pettorale) e centrali (fianco, peduncolo) durante le tre fasi del ciclo di

Questa nostra modifica, sebbene possa sembrare un “ritorno alle origini”, in realtà ci permet- te di avere tutti i vantaggi dello pseudocodice (ovvero di estendere il pool di