首页  >  文章  >  Java  >  AVL树

AVL树

王林
王林原创
2024-07-25 08:04:13621浏览

AVL Trees

AVL 树是平衡二叉搜索树。这篇文章介绍了二叉搜索树。二叉树的搜索、插入和删除时间取决于树的高度。在最坏的情况下,高度为 O(n)。如果一棵树完全平衡——即完全二叉树——它的高度是log n。我们能维持一棵完美平衡的树吗?是的,但这样做的成本会很高。妥协的办法是维持一个平衡良好的树——也就是说,每个节点的两个子树的高度大致相同。

AVL 树 非常平衡。 AVL 树于 1962 年由两位俄罗斯计算机科学家 G. M. Adelson-Velsky 和 ​​E. M. Landis 发明(因此称为 AVL)。在 AVL 树中,每个节点的两个子树的高度之差为 01。可以证明AVL树的最大高度为O(log n)。

在 AVL 树中插入或删除元素的过程与常规二叉搜索树相同,只是在插入或删除操作后可能需要重新平衡树。节点的平衡因子是其右子树的高度减去其左子树的高度。如果节点的平衡因子为 -101,则称该节点是 平衡。如果节点的平衡因子为 -1,则节点被视为 左重,如果其平衡因子为 +1,则被视为 右重 .

以上是AVL树的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:The AVLTree Class下一篇:Day 2