Università di Napoli Federico II – Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Corso di Programmazione I - Prof. S. Russo
Esercitazione guidata n. 3 – Programmazione con TDA
Si definisca un tipo di dati astratto Lista e lo si realizzi mediante implementazione dinamica con strutture a puntatori.
Operazioni del TDA lista
Il TDA lista preveda le seguenti operazioni:
- Start (inizializzazione)
- Empty (predicato lista piena)
- Full (predicato lista vuota)
- Push (inserimento in testa)
- Top (analisi dell’elemento in testa)
- Pop (analisi con rimozione dell’elemento in testa)
- Inserisce (inserimento ordinato)
- Elimina (eliminazione di un elemento dato)
- Elimina_in_testa (eliminazione dell’elemento testa)
- Inlist (predicato, vero se un elemento dato è presente)
- Stampa (stampa di tutti gli elementi nella lista)
Tecnica di programmazione
Si utilizzi una tecnica di programmazione con tipi di dati astratti, basandosi sui seguenti meccanismi del linguaggio C++:
- Compilazione separata
- Compilazione condizionale (mediante direttive del preprocessore: #infdef, #ifndef, #define, #endif)
- Prototipi di funzioni
- Dichiarazioni di nomi di tipo (con typedef e struct)
- Strutture (record) con puntatori
- Allocazione dinamica (con operatori new e delete)
Si realizzi il TDA con una chiara separazione tra interfaccia e implementazione, e si definisca l’interfaccia in modo che sia compatibile con una implementazione statica.