private RedBlackNode <T1, T2> RotateLeft(RedBlackNode <T1, T2> node) { if (node.right == null) { return(node); } var nodeColor = node.isRed; //Console.WriteLine("rotate left called with "+node.key.ToString()); var v = node.right; if (node.right != null) { //Console.WriteLine("rotate left called with "+node.right.key.ToString()); node.right = v.left; } v.left = node; v.isRed = nodeColor; node.isRed = true; return(v); }
public void Add(T1 key, T2 value) { var valueNode = new RedBlackNode <T1, T2>(key, value); this.redBlackNode = AddNode(this.redBlackNode, valueNode); }