Data Structures and Problem Solving Using C++ by Mark Allen Weiss