practice implementations of c++ data structures