Data structure and algorithms in c++ third edition - Drozdek, Adam (Cengage, 2007)