Data Structures and Algorithm Analysis in Java, Third Edition (Dover Books on Computer Science)