Programmazione degli Elaboratori

Strutture dati dinamiche

E' abbastanza comune che un programma debba lavorare con dei dati di quantità variabile e non noti a priori. Allora, invece di riservare memoria per tabelle sovradimensionate, una tecnica di programmazione molto conveniente consiste nell' organizzare la memoria riservando un' ampia zona, chiamata heap, "mucchio", da utilizzare per allocare dinamicamente spazio per i dati che di volta in volta è necessario immagazzinare. L' esempio più elementare di struttura dati dinamica è la lista collegata (linked list). L' idea di base è che ciascun elemento, o nodo, della lista contiene un rimando all'elemento successivo. Questo rimando normalmente consiste nell'indirizzo di memoria al quale si trova l'elemento successivo. Il termine tecnico che denota tale indirizzo è puntatore, detto cosi perché "punta" a un dato.

Ciascuna area di memoria è identificata dall' indirizzo della sua prima cella e dal numero di celle che contiene, cioè dalla sua dimensione. Inoltre, ciascuna area di memoria dovrà contenere un puntatore alla successiva area libera. Quando è necessario allocare un'area di memoria di n celle, si percorre la lista delle aree disponibili, partendo dalla prima, arrestandosi non appena si incontra un' area la cui dimensione è maggiore o uguale a n. Questa area viene scollegata dalla lista delle aree libere. In questo modo si utilizzano solamente le aree di memoria necessarie, nell' ottica di un risparmio di risorse.























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.