Data Structures and Algorithms in Java 5th (fifth) edition