Che cos’è una struttura dati?

Una struttura dati è un concetto dell’informatica che si riferisce a un particolare metodo di raccolta e organizzazione delle informazioni. Tutte le strutture dati utilizzano informazioni su dove si trova un dato pezzo di dati nella memoria di un computer per accedere a quei dati e collegarlo ad altri pezzi di dati.
Le strutture di dati stabiliscono uno dei tanti tipi diversi di relazioni tra le singole informazioni. Diversi tipi di struttura dati sono più efficienti per scopi diversi e la difficoltà di codifica varia ampiamente tra i tipi di struttura dati.

Gli array sono tra le strutture dati più semplici, ma sono comunque strumenti molto potenti per organizzare le informazioni. In un array, agli elementi vengono assegnati indirizzi di memoria sequenziali, consentendo di determinare molto rapidamente l’indirizzo di memoria di qualsiasi elemento nell’array utilizzando semplici calcoli matematici, un vantaggio fondamentale. Gli array possono essere concepiti come esistenti in qualsiasi numero di dimensioni. Un array unidimensionale potrebbe essere concettualizzato come un elenco, un array bidimensionale come una tabella e un array tridimensionale come un cubo di singole celle. Possono esistere anche array di più di tre dimensioni.

Gli elenchi collegati sono un altro tipo di struttura dati semplice ma molto importante. In un elenco collegato, ogni nodo è costituito da una variabile contenente sia dati effettivi che informazioni che identificano l’elemento successivo nell’elenco. Una lista concatenata può quindi essere attraversata fintanto che è noto l’indirizzo del primo nodo. Questo tipo di struttura dati è versatile perché si presta a una crescita dinamica, in quanto è possibile assegnare facilmente nuovi nodi in qualsiasi momento. L’aggiunta di una variabile contenente la posizione del nodo precedente nell’elenco consente di attraversare questo tipo di struttura dati in entrambe le direzioni.

Gli alberi ordinano i nodi in modo gerarchico, iniziando con un nodo radice e scendendo attraverso più livelli di nodi finché tutti i dati necessari non sono stati inseriti nella struttura. In genere, gli elementi all’interno di un albero vengono ordinati in qualche modo. Gli alberi possono implementare l’ordinamento e possono potenzialmente fornire un accesso molto più rapido ai dati archiviati a causa di ciò, poiché ogni diramazione elimina intere fasce di informazioni dalla considerazione che dovrebbero essere ordinate in un elenco collegato.

Le tabelle hash vengono utilizzate per determinare un indirizzo di memoria in cui deve essere archiviato un dato pezzo di dati utilizzando un’equazione per trasformare tali dati in un indirizzo di memoria. Possono essere una struttura molto efficiente per l’archiviazione e il recupero di dati da un array.

Tutte le strutture dati sono progettate per ridurre il numero di istruzioni che un computer deve eseguire per individuare una particolare informazione. Diversi tipi di dati si prestano a diversi tipi di strutture dati, ma la maggior parte dei linguaggi di programmazione moderni offre supporto per un’ampia varietà di strutture dati o fornisce gli strumenti per consentire ai programmatori di codificare le proprie strutture dati.