Data Structures and Abstractions with Java - Carrano, Frank M.