O livro é destinado ao segundo curso de programação, especialmente os que utilizam projeto orientado a objetos (POO) no estudo de estruturas de dados e algoritmos. O livro pode ser utilizado no terceiro curso de algoritmos e estruturas de dados em escolas com uma seqüência de três cursos. Além de abordar estruturas de dados e algorítmos básicos (listas, pilhas, filas, árvores, recursão, ordenação), existem capítulos sobre conjuntos e mapas, árvores de busca bimária balanceadas e grafos. Embora suponhamos que a maioria dos leitores tenha concluído um primeiro curso de programação em C++, há um extenso capítulo de revisão para os que talvez tivessem feito um primeiro curso de programação com uma outra linguagem orienteada a objetos, ou para os que precisem de uma revisão em C++.