Algorithms and Data Structures in C++