data-structures - 平衡AVL树需要多个轮换吗?

标签 data-structures tree rotation binary-tree avl-tree

我最好的猜测是,当您从已经平衡的AVL树中插入或删除一个元素时,旋转一次总是足以平衡AVL树。

一转总是足够的吗?
一个示例将在需要多次旋转的情况下提供帮助。

PS:我将RL/LR旋转仅算作一旋转。

最佳答案

对于 Blade 1,最多只能旋转1次。
对于删除,旋转数以O(log(n))为界。 Log(n)是树的高度。
有关AVL删除的更多说明。
从AVL中删除节点时,可能会导致树不平衡,您必须追溯到不平衡的点。如果不平衡点是根。您必须从上到下重新平衡树。

关于data-structures - 平衡AVL树需要多个轮换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20912461/

相关文章:

data-structures - 堆是抽象数据类型吗?如果是这样,那么优先队列呢?

mysql - 数据库来存储一棵巨大的树

c# - (更多)线程二叉树中旋转节点时的高效锁定

ios - 旋转 UIImageView 数据 -

javascript - 转动对象,以便它们在 Three.js 中重置其 y 旋转

android - 从横向旋转到纵向时,Phonegap/HTML5 和 Android 屏幕调整大小问题

matlab - 3 CUDA中的整数键查找

c++ - 如何存储一系列带时间戳的数据?

python - 如何获得无限数据结构?

java - 有没有办法优化此代码以避免内存不足错误?