Esercitazione del 9 Marzo 2001
Esercizio 1
Si scriva una estensione delle librerie per le liste (sia nella
implementazione ad Array, sia nella implementazione a Puntatori) che
consenta sia di copiare la lista in un altra lista, sia di salvare (e
recuperare) la lista su file.
Soluzione per lista Array
Soluzione per lista Puntatori
Esercizio 2
Creare una estensione della libreria utilizzata per i Bst che permetta il
salvataggio (e il recupero) dell'albero su file.
Una soluzione proposta
|
Esercitazione del 6 Marzo 2001
Esercizio 1
Si scriva un programma per la gestione attraverso un menu delle
funzionalità di un albero binario di ricerca. In particolare devono
essere disponibili le seguenti funzionalita':
- I : Inserimento di un nuovo nodo
- E : Eliminazione di un nodo (occorre richiedere la chiave)
- V : Visualizzazione del nodo avente la chiave inserita dall'utente
- T : Visualizzazione dell'intero albero
- F : Fine del programma
Una soluzione proposta
Esercizio 2
Creare il programma di gestione di una lista in cui ogni atomo sia un albero
binario di ricerca.
Denotiamo con bsti l'albero nell'elemento i-esimo della lista
Si scriva una procedura C a menu per la gestione della lista con le seguenti
funzionalità:
- Se il comando è I si inserisce un nuovo elemento della lista.
- Se il comando è U, si acquisisce da input due numeri interi i e j
e se i, j sono non superiori alla lunghezza della lista, si inserisce il
contenuto di tutti i nodi di bstj in bsti lasciando
bstj intatto.
- Se il comando è D, si acquisisce da input un intero i e se i
è non superiore alla lunghezza della lista si cancella bsti.
Una soluzione proposta
|
Esercitazione del 27 Febbraio 2001
Esercizio 1
Si scriva un programma per la gestione della coda di un pronto
soccorso, che accetta comandi con le seguenti funzionalità
- I : Accetta da input il nome di un paziente e un valore di urgenza,
espresso come intero fra 1 e N (costante assegnata), ed inserisce questi
dati, assieme all'ora corrente, in una struttura dati opportuna.
- E : visualizza su output il nome del paziente con massima urgenza e a
parità di urgenza il nome del paziente arrivato prima. Il paziente
visualizzato deve essere eliminato dalla struttura dati.
- F : fine del programma
Una soluzione proposta
Esercizio 2
Implementare una lista a puntatori, il cui tipo Atomo, rappresentante
un punto sul piano euclideo, deve essere così dichiarato:
typedef struct{
float x,y;
} Atomo;
Scrivere un programma C che prenda da tastiera una serie di punti e che
visualizzi, per ogni atomo A del file, gli atomi della lista che si trovano a
distanza euclidea minima da A.
Si noti che l'Atomo della lista a distanza minima non e' necessariamete unico.
Una soluzione proposta
|