AVL树是平衡二叉搜索树。这篇文章介绍了二叉搜索树。二叉树的搜索、插入和删除时间取决于树的高度。在最坏的情况下,高度为 O(n)。如果一棵树是完全平衡的——即完全二叉树——它的高度是log n。我们能维持一棵完美平衡的树吗?是的,但这样做的成本会很高。妥协的办法是维持一棵平衡良好的树——也就是说,每个节点的两个子树的高度大致相同。
AVL 树 非常平衡。 AVL 树于 1962 年由两位俄罗斯计算机科学家 G. M. Adelson-Velsky 和 E. M. Landis 发明(因此称为 AVL)。在AVL树中,每个节点的两个子树的高度之差为0或1。可以证明AVL树的最大高度为O(log n)。
在 AVL 树中插入或删除元素的过程与常规二叉搜索树相同,只是在插入或删除操作后可能需要重新平衡树。节点的平衡因子是其右子树的高度减去其左子树的高度。如果节点的平衡因子为 -1、0 或 1,则称该节点是 平衡的。如果节点的平衡因子为 -1,则节点被视为 left-heavy;如果其平衡因子为 1,则节点被视为 right-heavy。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3