树,二叉搜索树,平衡二叉树和左旋右旋

二叉搜索树:BST 左子节点比当前节点小,右子节点比当前节点大。
平衡二叉树:平衡因子(左子树与右子树高度差)不超过1 高度与节点的关系为0(logn)。
不平衡节点:平衡因子大于1的第一个节点。
如下图所示,树R(它是平衡二叉树)的左子树高度为2,右子树高度为1,那么他的平衡因子=左子树高度-右子树高度=1。
树N(它不是平衡二叉树)的左子树高度为3,右子树高度为1,那么他的平衡因子=左子树高度-右子树高度=2。
下图中平衡因子在N处第一次大于1,因此N为不平衡节点。
在这里插入图片描述
下面引出如何维护平衡:右旋和左旋。
右旋的条件:1.新插入节点导致不平衡
2.不平衡节点在插入的路径上
3.叶子节点在不平衡节点的左侧的左侧。
仍然以上图为例,进行右旋操作(操作后由于仍是T1<A<T2<R<T3<N<T4,BST Tree仍不变)。
在这里插入图片描述
左旋:右旋的条件:1.新插入节点导致不平衡
2.不平衡节点在插入的路径上
3.叶子节点在不平衡节点的右侧的右侧。
在这里插入图片描述
下面举个稍微复杂一些的例子。
不平衡节点的左边节点的右边节点插入,先左旋再右旋。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值