Data structure and algorithms in java, second edition - Drozdek, Adam. (Boston, MA Course Technology, 2005)