# How do I know which direction I should rotate a node in an AVL Tree?

I'm studying AVL Trees in my programming class and we got this exercise dealing with right, left, left-right and right-left rotations as a way to check if we understand the theoretical concept of AVL Trees. We're given the numbers $$100,50,25,10,37,32,200$$. Creating an AVL Tree until $$37$$ wasn't that difficult but then I got stuck at balancing out the tree when I insert $$32$$. The following is my method: Now I know that there is a conflict at $$52$$ but since it has 3 nodes (LRL), I don't understand how I should rotate. I think, I should get $$37$$ as the root node $$25$$ as it's left child and $$52$$ as it's right child but I dunno.

I think, I should get 37 as the root node 25 as it's left child and 52 as it's right child but I dunno.

You plan is correct.

What you need to do is a left-right rotation as shown in the third column of the table below. That is, a left rotation at node 25 followed by a right rotation at 52. It is symmetric to the right-left rotation as shown in the fourth column and as explained in Wikipedia. Before you insert a node, you already know the insertion is forbidden. You can rotate 52 before you insert a new node, because the insertion direction is otherwise wrong (52 has the red light 1). You can check and rotate all the nodes before you insert a new node such that all roads are as clear as possible (all green lights).

This generally means that after two insertions, the global height may increase (amorphous flip-flopping); in other words, every 2 insertion may trigger the extra height compression subroutine; such subroutines are very costly and can be the real main cost (hidden cost).

The flip-flop sequence obeys a very simple horizonal nonlinear wave equation with probablistic short pebble-rain+ripples. The height growth is like a simple dirac delta.

• Welcome to COMPUTER SCIENCE @SE. Can you provide a reference for this use of (amorphous) flip-flopping? I remember the cost to restore the balance criterion to be "constant" with AVL tree insert. Oct 24, 2021 at 9:29 1st step : Left-Left rotation. 2nd & 3rd step :Left-Right Rotation. 4th step: Right-Right Rotation. 5th is Final AVL tree.

https://www.tutorialspoint.com/data_structures_algorithms/avl_tree_algorithm.htm

• Can you explain how did you know in which directions to perform the rotations? Mar 8, 2019 at 21:15
• @Yuval Filmus , a link is added for better explanation. Mar 9, 2019 at 9:15
• OK but what happens if that link breaks? We're trying to be a collection of answers: Google already does the "links to answers" thing far better than we ever could. Mar 9, 2019 at 11:07
• In that case that child will be added to same level where it was before rotation. Mar 9, 2019 at 11:21
• (In that case that child will be added to same level where it was before rotation. What case, what child? The link D. Richerby was referring to was the hyperlink you planted to stand-in for an explanation.) Oct 24, 2021 at 9:22