DATA STRUCTURES AND ALGORITHMS IN JAVA - GOODRICH, MICHAEL