Data structures and algorithms with object-oriented design patterns in Java - Priess, Bruno R. (John Wiley, 2000)