Data Structures Using Java by Duncan A. Buell