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