Data structures and algorithms : with object-oriented design patterns in C++ - Preiss, Bruno R. (John Wiley Sons, 1999)