DATA STRUCTURES AND ALGORITHMS IN JAVA 5E