什么是AVL树呢?数据结构里面的内容

 我来答
销43
2018-03-19 · TA获得超过6887个赞
知道小有建树答主
回答量:484
采纳率:80%
帮助的人:51.5万
展开全部

首先得说一下,二叉搜索树

二叉搜索树除了满足二叉树的性质,还满足自身的一个特性

所有左子树的节点都比根节点的值小,所有右子树节点的值都比根结点值大

而这个定义是递归定义的,左子树的左子树所有点比左子树根小,左子树的右子树比左子树的根大,对于每一棵子树都是这样

这样在查询一个数的时候,可以每次根据根的信息决定左走还是右走

如果树是随机树,那么树高在log级别,可以基本保证每次查询都是logn的复杂度

但是很多情况下,树会变成链状或近似链状

这样每次查询可能会平均走到树一半的位置,效率就不尽人意了

为了防止这种情况的发生,就出现了AVL树,他通过控制每个节点的两个子树的高度,使他们的差很小,来保证树高在log级别,这样效率和稳定性得以提升,这就是AVL树,具体如何实现,你书上还会讲的

ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
山水阿锐
推荐于2016-02-28 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
在计算机科学中,AVL树是最先发明的自平衡二叉查找树。AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文 "An algorithm for the organization of information" 中发表了它。
高度为 h 的 AVL 树,节点数 N 最多2^h − 1; 最少N(h)=N(h− 1) +N(h− 2) + 1。
最少节点数n 如以斐波那契数列可以用数学归纳法证明:
即:
N(0) = 0 (表示 AVL Tree 高度为0的节点总数)
N(1) = 1 (表示 AVL Tree 高度为1的节点总数)
N(2) = 2 (表示 AVL Tree 高度为2的节点总数)
N(h)=N(h− 1) +N(h− 2) + 1 (表示 AVL Tree 高度为h的节点总数)
节点的平衡因子是它的左子树的高度减去它的右子树的高度。带有平衡因子 1、0 或 -1 的节点被认为是平衡的。带有平衡因子 -2 或 2 的节点被认为是不平衡的,并需要重新平衡这个树。平衡因子可以直接存储在每个节点中,或从可能存储在节点中的子树高度计算出来。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式