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