Beispiel #1
0
        public AVLTreeNode <int> LeftRotation(AVLTreeNode <int> Z)
        {
            AVLTreeNode <int> Y  = Z.GetRight();
            AVLTreeNode <int> T2 = Y.GetLeft();

            //Perform rotation
            Y.SetLeft(Z);
            Z.SetRight(T2);

            //Update Heights
            Z.SetHeight(Math.Max(Z.GetLeft().GetHeight(), Z.GetRight().GetHeight()) + 1);
            Y.SetHeight(Math.Max(Y.GetLeft().GetHeight(), Y.GetRight().GetHeight()) + 1);

            return(Y);
        }
        public AVLTreeNode <int> LeftRightRotation(AVLTreeNode <int> Z)
        {
            AVLTreeRightRotation RightRotation = new AVLTreeRightRotation();
            AVLTreeLeftRotation  LeftRotation  = new AVLTreeLeftRotation();

            Z.SetLeft(RightRotation.RightRotation(Z.GetLeft()));
            return(LeftRotation.LeftRotation(Z));
        }