【数据结构】AVL树——平衡二叉排序树(C语言)

AVL树是一种平衡二叉排序树,其节点左右子树高度差不超过1,防止搜索效率退化为O(n)。文章介绍了AVL树的性质,包括平衡条件和节点数量的关系,并详细讲解了调整操作如左旋和右旋,以及针对不同失衡类型的调整策略。最后,通过代码示例展示了AVL树的插入和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

性质

在这里插入图片描述

当一棵普通的二叉排序树是右边这个样子,树–>链表

那么二叉树的查找效率就由O(logn)退化成了O(n)

右边的树是不平衡的,下面介绍一种平衡二叉排序树——AVL树

在这里插入图片描述

AVL树的平衡条件:节点左右子树的高度差<=1

上述条件保证树不会退化成链表

  • 高度h的BS树节点个数 h<=n<=2h-1
  • 高度为h的AVL树节点个数1.5h<=n<=2h-1

low(h) = low(h-1)+low(h-2)+1 前部分为斐波那挈数列

斐波那挈数列的增长速率大约为1.618,第h项的值大约为1.5h

树高和节点数量是logn级别

平衡二叉排序树优化的是下界

调整操作

通过两种调整方式可以让不平衡->平衡

AVL树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙diao网友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值