Data Structures & Algorithms in Java (Fifth Edition)