public BinarySearchTreeNode <T> RotateRR() { if (IsRightEmpty()) { throw new SBTNodeEmptyException(true); } BinarySearchTreeNode <T> pNode = this; BinarySearchTreeNode <T> cNode = pNode.Right; pNode.ChangeRightSubtree(cNode.Left); cNode.ChangeLeftSubtree(pNode); return(cNode); }
public BinarySearchTreeNode <T> RotateLR() { if (IsLeftEmpty()) { throw new SBTNodeEmptyException(false); } else if (Left.IsRightEmpty()) { throw new SBTNodeEmptyException(true); } BinarySearchTreeNode <T> pNode = this; BinarySearchTreeNode <T> cNode = pNode.Left; pNode.ChangeLeftSubtree(RotateRR()); pNode.RotateLL(); return(cNode); }