示例#1
0
            //-----------------------------------------------------------------------

            /**
             * Balances according to the AVL algorithm.
             */
            private AVLNode balance()
            {
                switch (heightRightMinusLeft())
                {
                case 1:
                case 0:
                case -1:
                    return(this);

                case -2:
                    if (left.heightRightMinusLeft() > 0)
                    {
                        setLeft(left.rotateLeft(), null);
                    }
                    return(rotateRight());

                case 2:
                    if (right.heightRightMinusLeft() < 0)
                    {
                        setRight(right.rotateRight(), null);
                    }
                    return(rotateLeft());

                default:
                    throw new java.lang.RuntimeException("tree inconsistent!");
                }
            }