Goodrich, M. T. & Tamassia, R. (2011), Data structures and algorithms in Java, Wiley, Hoboken, NJ.