예제 #1
0
 public RBNode(RBNode <T> parentNode, T o, int key, Color color)
 {
     Key         = key;
     mainObject  = o;
     Parent      = parentNode;
     LeftBranch  = new RBNode <T>();
     RightBranch = new RBNode <T>();
     NodeColor   = color;
 }
예제 #2
0
 private Color CalculateColor(RBNode <T> node)
 {
     //у ноды имеющей красный цвет, потомки будут черные
     if (node.NodeColor == Color.Red)
     {
         return(Color.Black);
     }
     //у ноды имеющей черный цвет, потомки могут быть и красные и черные
     else
     {
         return(Color.Red);   //пока цвет будет красный
     }
 }
예제 #3
0
 public RBTree(T obj)
 {
     rootNode = new RBNode <T>(null, obj, NodeCount++, Color.Black);
 }