Data structure and algorithms in c++ third edition - Drozdek, Adam (Course Technology, 2004)