看了这么多数据结构的书,这个失衡旋转介绍的有点小复杂,特别是把旋转分四类的,什么单左,单右,先左后右,先右后左。

其实这个调整失衡只有两个字 ------赵云。哦,不对,是顺平

请出我大顺平候,赵云帅哥就搞定了

顺-----将高度增加的子树从夹在中间旋成靠边(已靠边的就已顺了)
平-----旋转使之平衡。

记住这两个字,就搞定所有情况的失衡啦,也不需要废那么多口舌。

已顺只需平
AVL树的失衡旋转---赵云法(顺平)
需先顺后平
AVL树的失衡旋转---赵云法(顺平)
那,就是这样啦。
记住赵云大帅哥,顺平一下,AVL就听话了。

哦,搞忘了说,旋转的要诀,所以重新编辑一下

旋转的前提:首先根据我上面的“顺平”要求,确定你需要旋转的方向。
要诀:添啥减啥,缺啥补啥(补的就是第一句里面减的)
比如 上面图二, 第一步“顺”的时候,v,p要旋转,v会把p添为自己的右子树,所以添“右”减“右”,减去自己原来的右子树“2”,而p的原左子树v就变成p的父节点了,p缺左子树,所以缺“左”补“左”(补的子树为前一步减下来的子树)。
解释的够清楚了吧,所有旋转都是这样的:添啥减啥,缺啥补啥。

ok,搞定。

相关文章:

  • 2021-05-30
  • 2022-01-05
  • 2022-03-09
  • 2021-04-27
  • 2022-12-23
  • 2022-01-11
  • 2021-08-22
  • 2021-11-16
猜你喜欢
  • 2021-06-28
  • 2021-06-20
  • 2021-06-24
  • 2022-12-23
  • 2021-07-08
  • 2021-10-31
相关资源
相似解决方案