Mark A. Weiss. Data Structures and Algorithm Analysis in Java (3rd Edition). Pearson Education, 2006.