Data Structures and Problem Solving Using Java - Weiss, Mark Allen (Addison-Wesley)