Questo corso presenta una selezione di strutture dati fondamentali affrontandone l'implementazione in Java e mostrando il loro utilizzo in applicazioni pratiche.
Argomenti
- Liste, Stack, Queue e Deque
- Alberi generici e Alberi binari
- Code a priorità
- Dizionari
- Union-Find
- Grafi
- Strutture per l'elaborazione di testi
Obiettivi
Il corso si prefigge di far acquisire allo studente- una buona conoscenza delle strutture dati fondamentali, delle loro principali implementazioni e del loro utilizzo in situazioni concrete;
- la capacità di analizzare la complessità delle operazioni supportate dalla struttura dati;
- la capacità di individuare le strutture dati più idonee per l'implementazione di un algoritmo e di analizzare la complessità dell'algoritmo in relazione alle strutture dati prescelte;
- la capacità di progettare e implementare nuove strutture dati o di modificare quelle preesistenti allo scopo di adattarle a specifiche applicazioni.
Libro di riferimento

Michael T. Goodrich, Roberto Tamassia
Data Structures and Algorithms in Java
4th Edition
Wiley