Goodrich, Michael T. and Tamassia, Roberto. Data structures and algorithms in Java. 5. ed., internat. student version Hoboken, NJ: Wiley, 2011.