最小的AVL树,使得连续插入导致所有四种旋转情况

时间:2015-11-26 20:34:46

标签: avl-tree

我应该使用从头开始的整数值插入来构建AVL树,这样在连续插入之后发生所有四种树旋转(简单左,简单右,双左和右右)。我认为展示这样一个例子的工作并不多,但是找到一个最小的例子并证明找到的例子是最小的似乎有点困难。有谁知道怎么办?应该发生双重旋转,至少会对树的最小高度施加一些限制。

1 个答案:

答案 0 :(得分:0)

无论您从哪个旋转开始,您总是需要3个节点才能进行第一次旋转,并且您始终会在该点处以平衡树结束。一旦树平衡,您至少需要2个节点才能导致另一个不平衡。

值是随机的。

单身

50,25,10

右转

5,8

单身

75,100

左转

63,55

可在此处显示https://www.cs.usfca.edu/~galles/visualization/AVLtree.html

小的实现细节,但是双旋转只是两个相反的单个旋转的组合。