Librerie Algoritmi e Strutture Dati
Questo progetto è stato sviluppato per il corso di Laboratorio di Algoritmi e Strutture Dati (LASD). L’obiettivo era implementare da zero, in C++, una libreria di contenitori generici e strutture dati, senza l’uso della Standard Template Library (STL).
Scopo del Progetto
Lo scopo principale è dimostrare la comprensione profonda dei meccanismi interni delle strutture dati più comuni, gestendo manualmente la memoria e implementando le interfacce e le classi astratte fornite.
Strutture Implementate
Il progetto è diviso in due esercizi principali:
Esercizio 1: Contenitori di Base
- Vector: Implementazione di un vettore dinamico.
- List: Implementazione di una lista doppiamente concatenata.
- Set: Implementazione di un set non ordinato, sia con vettore che con lista, per gestire collezioni di elementi unici.
- Interfacce: Creazione di un’architettura OOP robusta utilizzando classi astratte come
Container,LinearContainer,TraversableContainereMappableContainer.
Esercizio 2: Strutture Complesse
- Heap: Implementazione di una struttura dati Heap (Max-Heap) basata su un vettore.
- Priority Queue (PQ): Implementazione di una Coda di Priorità utilizzando la struttura Heap sottostante.
Questo progetto ha consolidato le mie competenze nella programmazione C++ moderna, nella gestione della memoria (costruttori, distruttori, assegnamento) e nella progettazione software a oggetti.