Data structures and algorithms in java - Drozdek, Adam (Cengage Learning, 2013)