数据结构系列-12 平衡二叉树

平衡二叉树基于 查找二叉树。

大家知道如果,如果建立查找二叉树,的序列是随机的,二叉树的查找性能会接近 O(logn) ,但是如果,序列是顺序的如从小到大,建立的查找二叉树,就会变成一个所有节点只有右孩子的,链表。查找效率会退化成 O(n), 原因就是这棵树不平衡了。判断一个棵树平衡的标准是什么,如何构建和调整一棵树,使他平衡呢。答案就是 平衡二叉树(AVL)

1.什么是平衡因子?

是一个数值,每个节点的平衡因子 = 左子树的高度 - 右子树的高度

2.平衡二叉的标准是什么?

每个节点的平衡因子的绝对值都不超过1

3.如何添加元素使树保持平衡?

  1. 从插入的节点依次网上找他的根节点入栈。找到第一个不平衡的节点结束
  2. 出栈2个节点,第一个不平衡的节点,加上其他出栈节点一共三个节点,排序
  3. 中间的,当做跟节点,小的当做左子树,大的当做右子树,左右子树的孩子不动
  4. 对于没有位置的节点,根据查找二叉树的添加原则添加到树中。

4.如何删除元素使树保持平衡?

  1. 按照查找二叉树的删除原则,删除节点,并保存真正被删除节点的位置。
  2. 从真正被删除节点,向上找到第一个不平衡的节点
  3. 其他同上略

本文参考:【数据结构】五分钟告诉你什么是平衡二叉树 ?什么是二叉排序树?平衡因子的计算等等 干货满满!_哔哩哔哩_bilibili

 平衡二叉树的构造,元素插入,平衡调整,方法简单让你十分钟学会,终身不忘。_哔哩哔哩_bilibili

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值