Data structures 插入后AVL树旋转的替代定义

Data structures 插入后AVL树旋转的替代定义,data-structures,tree,binary-search-tree,avl-tree,Data Structures,Tree,Binary Search Tree,Avl Tree,以下平衡AVL树的方法正确吗 (注意:以1结尾的符号被视为左节点,以2结尾的符号被视为右节点) 在创建新节点后向上移动时,假设我们当前位于节点x。假设x有两个子项y1,y2和h(y2)-h(y1)>1,那么由于y2的高度更高,我们将检查y2的两个子项,比如z1和z2。如果h(z2)>=h(z1),那么我们的旋转就是右旋转 所以我将做右旋转来平衡AVL树节点x 为了执行上述操作,我只需要更新我到达的每个节点的高度 有没有上述的反例?在h(z2)>h(z1)的情况下,很明显,它是右旋的。但当h(z2

以下平衡AVL树的方法正确吗

(注意:以1结尾的符号被视为左节点,以2结尾的符号被视为右节点)

在创建新节点后向上移动时,假设我们当前位于节点x。假设x有两个子项y1,y2和h(y2)-h(y1)>1,那么由于y2的高度更高,我们将检查y2的两个子项,比如z1和z2。如果h(z2)>=h(z1),那么我们的旋转就是右旋转

所以我将做右旋转来平衡AVL树节点x

为了执行上述操作,我只需要更新我到达的每个节点的高度

有没有上述的反例?在h(z2)>h(z1)的情况下,很明显,它是右旋的。但当h(z2)=h(z1)时,我有点困惑,因为在这种情况下,我们创建的节点可能是z1的子节点,所以根据通常的定义,它应该是左右旋转