Data structures and algorithms with object-oriented design patterns in Java - Preiss, Bruno R. (Worldwide series in computer science, 2000)