Data structures and algorithms in C++ - Drozdek, Adam (Cengage learning, 2006)