Exemple #1
0
 RBNode <T> MoveRedRight(RBNode <T> node)
 {
     node.ColorFlip();
     if (IsNodeRed(node.LeftChild.LeftChild))
     {
         node = node.RotateRight();
         node.ColorFlip();
     }
     return(node);
 }
Exemple #2
0
 // Token: 0x060076A2 RID: 30370 RVA: 0x0021E8B7 File Offset: 0x0021CAB7
 private RBNode <T> MoveRedLeft(RBNode <T> node)
 {
     node.ColorFlip();
     if (this.IsNodeRed(node.RightChild.LeftChild))
     {
         node.RightChild = node.RightChild.RotateRight();
         node            = node.RotateLeft();
         node.ColorFlip();
     }
     return(node);
 }
Exemple #3
0
 RBNode <T> Fixup(RBNode <T> node)
 {
     if (!IsNodeRed(node.LeftChild) && IsNodeRed(node.RightChild))
     {
         node = node.RotateLeft();
     }
     if (IsNodeRed(node.LeftChild) && IsNodeRed(node.LeftChild.LeftChild))
     {
         node = node.RotateRight();
     }
     if (IsNodeRed(node.LeftChild) && IsNodeRed(node.RightChild))
     {
         node.ColorFlip();
     }
     return(node);
 }