System\Data\RbTree.cs (82)
385int y_id = Parent(x_id);
390y_id = Parent(y_id);
455SetParent(y_id, Parent(x_id));
456if (Parent(x_id) == NIL)
469else if (x_id == Left(Parent(x_id)))
471SetLeft(Parent(x_id), y_id);
475SetRight(Parent(x_id), y_id);
510SetParent(y_id, Parent(x_id));
511if (Parent(x_id) == NIL)
524else if (x_id == Left(Parent(x_id))) // x is left child of its parent
525SetLeft(Parent(x_id), y_id);
527SetRight(Parent(x_id), y_id);
628SetParent(newMainTreeNodeId, Parent(z_id));
633if (Left(Parent(z_id)) == z_id)
634SetLeft(Parent(z_id), newMainTreeNodeId);
635else if (Right(Parent(z_id)) == z_id)
636SetRight(Parent(z_id), newMainTreeNodeId);
745while (color(Parent(x_id)) == NodeColor.red)
747if (Parent(x_id) == Left(Parent(Parent(x_id)))) // if x.parent is a left child
749y_id = Right(Parent(Parent(x_id))); // x.parent.parent.right;
752SetColor(Parent(x_id), NodeColor.black); // x.parent.color = Color.black;
754SetColor(Parent(Parent(x_id)), NodeColor.red); // x.parent.parent.color = Color.red;
755x_id = Parent(Parent(x_id)); // x = x.parent.parent;
759if (x_id == Right(Parent(x_id)))
761x_id = Parent(x_id);
765SetColor(Parent(x_id), NodeColor.black); // x.parent.color = Color.black;
766SetColor(Parent(Parent(x_id)), NodeColor.red); // x.parent.parent.color = Color.red;
767root_id = RightRotate(root_id, Parent(Parent(x_id)), mainTreeNodeID); // RightRotate (x.parent.parent);
772y_id = Left(Parent(Parent(x_id))); // y = x.parent.parent.left;
775SetColor(Parent(x_id), NodeColor.black);
777SetColor(Parent(Parent(x_id)), NodeColor.red); // x.parent.parent.color = Color.red;
778x_id = Parent(Parent(x_id));
782if (x_id == Left(Parent(x_id)))
784x_id = Parent(x_id);
788SetColor(Parent(x_id), NodeColor.black); // x.parent.color = Color.black;
789SetColor(Parent(Parent(x_id)), NodeColor.red); // x.parent.parent.color = Color.red;
790root_id = LeftRotate(root_id, Parent(Parent(x_id)), mainTreeNodeID);
811if (Parent(x_id._nodeID) == NIL && x_id._nodeID != root) //determine if x_id is a satellite root.
901py_id = Parent(y_id);
954tmp_py_id = Parent(tmp_py_id);
965nodeId = Parent(nodeId);
985if (Parent(mNode) != NIL)
987SetParent(satelliteRootId, Parent(mNode));
988if (Left(Parent(mNode)) == mNode)
990SetLeft(Parent(mNode), satelliteRootId);
994SetRight(Parent(mNode), satelliteRootId);
1038if (Parent(z_id) != NIL)
1040SetParent(y_id, Parent(z_id));
1041if (Left(Parent(z_id)) == z_id)
1043SetLeft(Parent(z_id), y_id);
1047SetRight(Parent(z_id), y_id);
1108if ((x_id != NIL && x_id == Left(Parent(x_id))) || (x_id == NIL && Left(px_id) == NIL))
1112w_id = (x_id == NIL) ? Right(px_id) : Right(Parent(x_id)); // w is x's right sibling and it cannot be NIL
1124w_id = (x_id == NIL) ? Right(px_id) : Right(Parent(x_id));
1131px_id = Parent(px_id); //maintain px_id
1140w_id = (x_id == NIL) ? Right(px_id) : Right(Parent(x_id));
1149px_id = Parent(x_id);
1162w_id = (x_id == NIL) ? Left(px_id) : Left(Parent(x_id));
1170w_id = (x_id == NIL) ? Left(px_id) : Left(Parent(x_id));
1183px_id = Parent(px_id);
1192w_id = (x_id == NIL) ? Left(px_id) : Left(Parent(x_id));
1201px_id = Parent(x_id);
1414int parent = Parent(nodeId);
1432int parent = Parent(nodeId);
1914while (NIL != tree.Parent(node))
1916node = tree.Parent(node);
1926while (NIL != tree.Parent(node))
1928node = tree.Parent(node);
1933while (NIL != tree.Parent(node))
1936node = tree.Parent(node);