Data Structures and Algorithms in Java. - Drozdek, Adam (Cengage learning., 2005)