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)); }