DATA STRUCTURES & ALGORITHMS IN JAVA BY ROBERT LAFORE