Red-Black Trees

A red-black  tree  is a binary search tree having  the following ordering
properties:
1.  Every node is colored either red or black.
2.  The root is black.
3.  If a node is red, its children must be black.
4.  Every path  from a node  to  a NULL  pointer must contain the  same
number of black nodes.