Data structures and algorithms in java - Drozdek, Adam (Cengage learning, 2009)