微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决插入后AVL树旋转的替代定义

以下平衡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的子节点,因此根据通常的定义,它应该是向右旋转。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。