Concetti Chiave
- Un ADT è un tipo di dato astratto utilizzato per gestire in modo efficiente strutture dati come alberi, grafi, liste e pile.
- In C, gli ADT non sono definiti da un metodo standard, ma creati tramite la gestione di file separati e header (.h).
- Le tipologie di ADT includono il quasi ADT, che definisce la struttura dati nell'header, e l'ADT di prima classe, che la nasconde.
- Il quasi ADT fornisce sia i metodi di gestione che la definizione della struttura, mentre l'ADT di prima classe nasconde la struttura stessa.
- La creazione di ADT in C permette personalizzazioni efficaci per risolvere vari problemi generici tramite diverse configurazioni.
Un ADT in ambito informatico è un tipo di dato astratto utilizzato per gestire in modo ottimizzato alcune strutture dati utili ed importanti come gli alberi, binari e non, i grafi, le liste, le pile, ma anche particolari configurazioni personalizzazioni di queste strutture utili alla risoluzione di generici problemi.
Implementazione in C
Nel linguaggio di programmazione C non esiste un vero e proprio metodo fornito dal linguaggio per la definizione di queste strutture dati; vengono pertanto create sfruttando la possibilità di usare più file nel codice sorgente, e quindi gestire la struttura di cui si vuole creare l’ADT in un file separato, accessibile dal file principale tramite i metodi e le definizioni presenti nel file header (file di estensione .h).
Quali sono le tipologie di ADT?
E’ possibile definire due diverse tipologie di ADT, il quasi ADT e l’ADT di prima classe; il quasi ADT possiede nell’header oltre ai metodi per la gestione della struttura dati, anche la definizione stessa della struttura dati, nell’ADT di prima classe invece la struttura dati non è definita nell’header corrispondente ma è accessibile solo dai metodi che la gestiscono, nascondendo la loro composizione all’esterno.
Es.
struct list{
int val;
struct list *next;
}
void addnodo(struct list *list);
typedef struct list * listpointer;
void addnodo(listpointer list);
Domande da interrogazione
- Che cos'è un ADT e quali strutture dati gestisce?
- Come si implementano gli ADT nel linguaggio C?
- Quali sono le due tipologie di ADT e come si differenziano?
Un ADT, o tipo di dato astratto, è utilizzato per gestire in modo ottimizzato strutture dati importanti come alberi, grafi, liste e pile, oltre a configurazioni personalizzate per risolvere vari problemi.
In C, gli ADT non hanno un metodo predefinito; vengono creati utilizzando più file nel codice sorgente, gestendo la struttura in un file separato e accedendo ad essa tramite un file header (.h).
Le due tipologie di ADT sono il quasi ADT, che include la definizione della struttura dati nell'header, e l'ADT di prima classe, dove la struttura è nascosta e accessibile solo tramite i metodi che la gestiscono.