algorithms and data structures implementation in C++