Codice su GitHub

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, TraversableContainer e MappableContainer.

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.

Updated: