Questo libro offre un'introduzione allo studio degli algoritmi e delle strutture dati, cercando di conciliare comprensibilità, chiarezza di esposizione e rigore matematico. Particolare enfasi è posta sull'astrazione delle tecniche e delle metodologie generali di progetto e analisi di algoritmi, stimolandone la comprensione intuitiva dei principi fondamentali. Il libro è concepito soprattutto per corsi universitari delle facoltà di ingegneria e di scienze matematiche, fisiche e naturali. Il testo, pur essendo indipendente dalla scelta di un particolare linguaggio di programmazione, adotta un approccio orientato agli oggetti sia nella descrizione delle strutture dati che nello pseudocodice utilizzato per descrivere gli algoritmi. In tal modo, pur astraendo dai dettagli implementativi di basso livello, gli algoritmi presentati non risultano troppo distanti da una loro reale implementazione.