为什么在二叉搜索树上确实有n-1个可能的旋转?
答案 0 :(得分:2)
在二叉树中有n个节点。我们知道节点的顺序不能改变。每个节点都标有数字{1 ... n}。假设n = 4并且树的标签当前根是1.您可以拥有多少其他可能的根?
唯一的选择是2,3,4因此在树上,树只能有N-1个根,只有N-1个独特的旋转。可能不是理论上的解释,但我希望这可以帮助你想象它。
答案 1 :(得分:0)
旋转只能应用于左边缘或右边缘。在n个节点BST中有n-1个边缘,因此n-1个旋转是可能的。
答案 2 :(得分:0)
我认为可以通过递归来证明此属性。
For n = 1, the property is true.
assume that this is true for all binary search tree with k nodes such as k <= n
For a bst A with n + 1 nodes:
nbRotation (A) = 2 + nbRotation (left(A)) + nbRotation (right(A))
assume that the size of the left(A) = p and the size of the right(A) = m then
nbRotation (left(A)) = p-1 and the nbRotation (right(A)) = m-1
So nbRotation(A) = 2 + m-1 + p-1 = m + p = n