Salve a tutti, sotto ho scritto un esercizio che devo svolgere.
Premetto che ho capito la logica che sta dietro alla fifo/lifo.
Il problema è che non riesco a capire come posso implementare in c la creazione di un numero imprecisato di strutture (da indentare in lista). Cioè, se io da lato client posso creare un qualsiasi numero di strutture, come faccio ad identificarle una per una? dovrei memorizzarle in un vettore? ma di quanto dovrei allocarlo?
Non vi chiedo ovviamente di risolvermi il problema ma apprezzerei tanto una mano nel capire come strutturarlo.
Grazie, Paolo.
codice:
POLITECNICO DI TORINO
CORSO DI LAUREA IN INGEGNERIA INFORMATICA/TELECOMUNICAZIONI
CORSO DI ALGORITMI E PROGRAMMAZIONE
Esercitazione di laboratorio n. 7
La corretta implementazione di almeno una delle versioni di almeno una delle strutture dati
proposte sarà oggetto di valutazione ai fini dell’attribuzione del punteggio per i laboratori.
Esercizio n. 1: gestione di strutture FIFO.
Si realizzi un programma C che, attraverso un’apposita interfaccia utente, permetta di gestire una
struttura dati di tipo FIFO (coda non prioritaria).
Le operazione permesse devono essere quelle di:
- creazione di una nuova struttura (vuota).
- inserimento di un nuovo elemento della struttura.
- estrazione di un elemento dalla struttura.
- visualizzazione (a video) di tutti gli elementi nella base dati (opzionale).
- salvataggio della base dati su file (opzionale).
- caricamento di una nuova base dati da file (opzionale).
In questo esercizio, il programma deve essere realizzato su tre moduli distinti:
- l’interfaccia utente (il client).
- un modulo con le funzioni per la gestione della coda.
- un modulo con le funzioni per la gestione dei singoli dati.
In particolare, si desidera che l’implementazione della libreria sulla struttura dati corrisponda a un
ADT di I categoria.
Si supponga che ogni elemento della base dati possa essere (a scelta del programmatore):
- una stringa di lunghezza massima pari a 50 caratteri.
- un numero intero.
- una struttura composta da due campi (stringa + numero).
Si realizzi il programma in due versioni:
- supponendo che il numero massimo di elementi nella coda sia pari a 100 (implementazione
tramite vettori).
- supponendo che non ci sia limite al numero di elementi che è possibile memorizzare nella
coda (implementazione tramite liste).
Esercizio n. 2: gestione di strutture LIFO.
Si ripeta quanto proposto per l’Esercizio 1 nel caso di una struttura dati di tipo LIFO (stack).