An object oriented implementation of a red-black tree in C++