add red black tree code and test