| HOME |
Introduzione
alla
Libreria di Algoritmi e Strutture Dati
La Libreria di Algoritmi e Strutture Dati nasce allo scopo di fornire un supporto didattico per gli studenti di corsi di "Algoritmi e Strutture Dati" e "Fondamenti di Informatica". I suoi componenti sono le implementazioni in C++ degli pseudocodici del libro Algoritmi e Strutture Dati di Camil Demetrescu, Irene Finocchi e Giuseppe F. Italiano.
Caratteristiche
Le caratteristiche principali della Libreria ASD sono le seguenti:
- codice chiaro, ben strutturato e ben commentato,
- efficienza,
- semplicita' di utilizzo,
- documentazione completa e ben strutturata,
- portabilita'.
Si noti che la Libreria ASD e' un software open source. Se vuoi contribuire al progetto, oppure hai commenti/suggerimenti, non esitare a contattarci al seguente indirizzo: f.iovine@gmail.com
Hanno gia' contribuito al progetto:
- Francesco Iovine (autore)
- Massimiliano Macchia (Grafo)
- Carlo Ieva (Estensioni al tipo UnionFind)
- Luca D'Avino (manuale d'uso, algoritmi di ordinamento, AlberoAVL)
Manuale d'uso
E' disponibile un manuale d'uso in formato pdf della Libreria ASD. Tale manuale e' stato scritto da Luca D'Avino con lo scopo di avvicinare lo studente alla comprensione della libreria ASD e piu' in generale alla programmazione in C++. Puoi scaricare il manuale qui.
Prerequisiti di utilizzo
La Libreria ASD è scritta in C++ ed è generica, nel senso che quasi tutti i suoi componenti utilizzano parametri template. Per questo motivo, prima di usare la libreria, bisognerebbe aver compreso il funzionamento dei template in C++.
La Libreria ASD utilizza le classi container e gli iteratori della Standard Template Library (STL) come ad esempio vector, list and map. E' necessaria quindi la presenza della STL.
I test sono stati effettuati:
- in ambiente UNIX (utilizzando gcc 3.3 e gcc 4.0.1)
- in ambiente WINDOWS (utilizzando Bloodshed Dev-C++ 5)
Namespace
Ogni algoritmo e struttura dati della libreria di Algoritmi e Strutture Dati è incluso in un namespace di nome asd.
I programmi di prova
Nella cartella main sono presenti programmi di prova che consentono di comprendere e verificare il funzionamento di ogni componente della libreria ASD. Alcune funzioni main utilizzano gli esempi del libro, altre operano su tipi personalizzati, altre ancora effettuano un test sulla componente utilizzando un numero elevato di elementi ricavati in modo random.
Nella cartella make è presente un esempio di 'makefile' in ambiente UNIX, in cui è indicato il modo in cui i programmi di prova sono stati compilati. Di seguito viene riportato un esempio di comando di compilazione di un programma di prova, dopo aver posizionato la libreria in 'home'.
g++ -O2 -I $(HOME)/asd_x.y.z/include -o main.o $(HOME)/asd_x.y.z/main/programma_di_prova.cpp
In ambiente WINDOWS, utilizzando ad esempio Dev-C++, è necessario aggiungere la directory 'include' tra le directory da includere. Inoltre, per visualizzare correttamente l'output dei programmi di prova, occorre aggiungere nel main l'istruzione system("pause");
Disclaimer
Con la presente libreria non è fornito supporto di nessun tipo. Inoltre si declina ogni responsabilità per eventuali danni arrecati da un uso non corretto del software.