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

Appello del 7 febbraio 2005 Laboratorio di Algoritmi e Strutture Dati

Anno Accademico 2004/2005

Pag. 1

Cognome e Nome: Docente:

Numero di Matricola:

Spazio riservato alla correzione

1 2 3 4 5.1 5.2 5.3 totale

/15 /15 /15 /15 /10 /10 /10 /90

1. Aggiungere alla classe LinkedTree il metodo int arity() che restituisce l’arità dell’albero.

L’arità (arity) di un albero è il numero massimo di figli di un nodo dell’albero. Quale è la complessità del metodo proposto (giustificare la risposta).

2. Aggiungere alla classe D che implementa l’interfaccia Dictionary il metodo Iterator deleteAllElements(Object key) che cancella dal dizionario tutti gli elementi che hanno chiave uguale a key. Il metodo restituisce un iteratore su tutte le voci cancellate dal dizionario. Se non ci sono elementi con con chiave uguale a key, allora viene lanciata l’eccezione NoSuchKey. Quale è la complessità del metodo proposto (giustificare la risposta). Quale è la complessità del metodo proposto (giustificare la risposta).

3. Implementare il TDA Deque. La classe deve usare come rappresentazione interna un’unica istanza della classe ArrayVector. Quale è la complessità dei metodi implementati (giustificare la risposta).

4. Si scriva la funzione Vector estrai(Queue Q, Object o1, Object o2, Comparator C) che restituisce il vettore di tutti gli oggetti presenti in Q compresi tra o1 ed o2 inclusi (per confrontare gli oggetti si deve usare il comparatore C). Usare solo i metodi dell’interfaccia Queue (però non è possibile utilizzare i metodi elements() e positions()). Si osservi che la funzione deve lasciare inalterato il contenuto di Q alla fine dell’esecuzione (lo può modificare durante). Quale è la complessità del metodo proposto (giustificare la risposta).

5. L'agenzia LAVORO PER TUTTI gestisce una banca dati di richieste ed offerte di lavoro. Gli utenti della banca dati possono essere sia persone in cerca di occupazione che aziende in cerca di manodopera.

Ogni persona in cerca di occupazione deve compilare un questionario in cui specifica le proprie generalità, il tipo di lavoro richiesto e le sedi di lavoro che gli sono gradite. Un azienda in cerca di manodopera, invece, deve indicare le qualifiche professionali delle persone che intende assumere e le sedi di lavoro. Per ciascuna sede e qualifica deve, inoltre, indicare il numero di posti disponibili.

Il programma di gestione della banca dati deve consentire di assegnare i lavori alle persone rispettando le preferenze espresse (in altre parole, ogni persona può accettare al più un lavoro, mentre ogni azienda non può assumere più persone del numero di posti disponibili) e massimizzando il numero di persone occupate.

1. Supponendo che una persona ed un’azienda sono rappresentate dalle classi Persona ed Azienda, rispettivamente, descrivere la struttura dati utilizzata per rappresentare il problema in esame (in quale struttura dati memorizzate le persone, le aziende, come rappresentate il fatto che ogni persona può accettare al più un lavoro, mentre ogni azienda

(2)

Appello del 7 febbraio 2005 Laboratorio di Algoritmi e Strutture Dati

Anno Accademico 2004/2005

Pag. 2

non può assumere più persone del numero di posti disponibili, …). Ad esempio,

“memorizziamo tutte le persone in uno Stack mentre le aziende in una Coda”.

2. Scrivere lo pseudo-codice dell’algoritmo utilizzato per massimizzare il numero di persone occupate

3. Analizzare la complessità dell’algoritmo proposto

Nota: l’esercizio è risolvibile usando opportunamente uno degli algoritmi illustrati durante le lezioni di teoria.

Riferimenti

Documenti correlati

Tale studio deve essere presentato tramite un’opportuna modellazione via diagrammi UML (www.uml.org), che descriva l’architettura del simulatore e dei suoi componenti..

se il primo parametro sulla linea di comando `e pari a add, allora devono essere presenti ulteriori 3 parametri: il numero di giorni entro cui la fattura scadr`a (ad esempio, se

(hint: le funzioni di setcond vengono richiamate dall'interno di un altro monitor). Discutere le problematiche correlate... 2) Scrivere i metodi setwait e setsignal come procedure

Dopo che un radioamatore ha acceso la radio e si è sintonizzato sul canale che intende utilizzare attende che il collega che sta parlando passi al successivo e velocemente trasmette

Il sistema prevede quindi l’interrogazione e la visualizzazione dei dati attraverso Arcview e specifiche form, funzioni di import ed export, la gestione dei metadati,

Il documento di presentazione dovrà contenere delle informazioni utili alla giuria per valutare il progetto o il prodotto. Le informazioni saranno utilizzate dalla giuria tecnica

Accuratezza richiesta Valore dell’ integrale Stima errore assoluto Errore

Quesito F (punti 3) Trovare le radici dell’ equazione e −x 2 sin(2πx) = 0 nell’ intervallo [0, 1] utilizzando degli opportuni comandi Matlab o il metodo delle secanti..