Principali strutture dati e loro implementazione.

Basi di dati: modello logico, schema, istanza, DBMS, indipendenza dei dati, Vincoli
Basi di dati: modello logico, schema, istanza, DBMS, indipendenza dei dati, Vincoli, basi di dati, database, modello logico, schema, istanza, dbms, indipendenza dei dati, vincoli, induzione, deduzione, abduzione, argomento deduttivo, argomento induttivo, argomento abduttivo,

1. Tipi di strutture dati fondamentali.

Struttura DatiDescrizione / Uso principaleImplementazione tipicaEsempio concettuale
Array / ListeCollezione di elementi dello stesso tipo, accesso per indiceArray statici o liste dinamichelista = [1,2,3,4]
Stack (Pila)LIFO – “Last In, First Out”: l’ultimo elemento inserito è il primo ad uscireArray o lista collegatastack.append(x); stack.pop()
Queue (Coda)FIFO – “First In, First Out”: il primo elemento inserito è il primo ad uscireArray circolare o lista collegataqueue.append(x); queue.pop(0)
Deque (Doppia coda)Inserimento/rimozione da entrambe le estremitàLista doppiamente collegatadeque.appendleft(x) / deque.pop()
Lista collegataSequenza di nodi collegati da puntatoriNodo (valore + puntatore)head -> node1 -> node2 -> None
Set / InsiemiCollezione di elementi uniciHash table o alberi bilanciatiset([1,2,2,3]) → {1,2,3}
Map / DizionarioCollezione chiave → valoreHash tablediz = {“a”: 1, “b”: 2}
Albero (Tree)Struttura gerarchica, utile per ricerche e ordinamentiNodi con riferimenti a figliroot -> left + right
Albero binario di ricerca (BST)Albero ordinato per ricerche efficientiNodi con figlio sinistro/destroinserisci(x) mantiene ordine
Heap / Coda prioritariaAccesso rapido all’elemento massimo/minimoArray con regole di heapheapq in Python
GrafoCollezione di nodi connessi da archiListe di adiacenza o matrici di adiacenzagraph = {1:[2,3], 2:[3]}

2. Concetti chiave da conoscere.

  1. Operazioni base: inserimento, cancellazione, ricerca, aggiornamento.
  2. Efficienza: capire il tempo di esecuzione (complessità O(n), O(log n), ecc.).
  3. Implementazione: sapere come una struttura dati viene rappresentata in memoria (array vs lista collegata, hash table, ecc.).
  4. Applicazioni tipiche:
    • Stack → gestione chiamate funzioni, undo/redo.
    • Queue → code in processi, BFS nei grafi.
    • Heap → algoritmi di ordinamento (heap sort), code prioritarie.
    • Grafi → reti, percorsi, algoritmi di ricerca (DFS, BFS).


Spesso gli esercizi chiedono di scegliere la struttura dati più adatta al problema e di implementarla almeno in maniera semplice. Avere schemi e piccoli esempi di codice aiuta moltissimo.

** Se puoi sostenere il mio lavoro, comprami un libro | Buy me a book! **
** ISCRIVITI ALLA NEWSLETTER ! **

About the Author

Sergio Mauri
Blogger, autore. Perito in Sistemi Informativi Aziendali, musicista e compositore, Laurea in Discipline storiche e filosofiche e in Filosofia. Premio speciale al Concorso Claudia Ruggeri nel 2007; terzo posto al Premio Igor Slavich nel 2020. Ha pubblicato con Terra d'Ulivi nel 2007 e nel 2011, con Hammerle Editori nel 2013 e 2014, con PGreco nel 2015 con Historica Edizioni e Alcova Letteraria nel 2022 con Silele Edizioni (La Tela Nera) nel 2023 e con Amazon Kdp nel 2024 e 2025.