common algorithms and data structures in c/c++