コード例 #1
0
            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);
            }
コード例 #2
0
            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);
            }