Algorithm AVL树旋转技术?

Algorithm AVL树旋转技术?,algorithm,Algorithm,有人能解释AVL树中的旋转技术吗?举例来说,旋转有4种类型:LL、RR、LR和RL。 我知道LL和RR的旋转,但我对RL和LR的旋转有一些问题?这里真的不应该问这些问题,因为你可以像我一样通过简单的谷歌搜索和探索自己来解决这个问题。但是这里有一个非常好的方法来为它编写伪代码: IF tree is right heavy { IF tree's right subtree is left heavy { Perform Double Left rotation } ELSE

有人能解释AVL树中的旋转技术吗?举例来说,旋转有4种类型:LL、RR、LR和RL。
我知道LL和RR的旋转,但我对RL和LR的旋转有一些问题?

这里真的不应该问这些问题,因为你可以像我一样通过简单的谷歌搜索和探索自己来解决这个问题。但是这里有一个非常好的方法来为它编写伪代码:

IF tree is right heavy {

  IF tree's right subtree is left heavy {
     Perform Double Left rotation

  } ELSE {
     Perform Single Left rotation
  }

} ELSE IF tree is left heavy {

  IF tree's left subtree is right heavy {
     Perform Double Right rotation
  }

  ELSE {
     Perform Single Right rotation
  }
} 

这是我从哪里得到这个的链接。这篇论文还有一个更详细的解释,应该可以澄清这一点:

这些问题真的不应该在这里问,因为你可以像我刚才那样通过简单的谷歌搜索和自我探索来解决这个问题。但是这里有一个非常好的方法来为它编写伪代码:

IF tree is right heavy {

  IF tree's right subtree is left heavy {
     Perform Double Left rotation

  } ELSE {
     Perform Single Left rotation
  }

} ELSE IF tree is left heavy {

  IF tree's left subtree is right heavy {
     Perform Double Right rotation
  }

  ELSE {
     Perform Single Right rotation
  }
} 
这是我从哪里得到这个的链接。这篇论文还有一个更详细的解释,可以澄清这一点: