简述二叉树

二叉树

二叉查找树

二叉查找树,也称二叉搜索树,二叉排序树。要么是空树,要么具有以下性质

  • 若任意节点的左子树不空,左子树上所有节点的值均小于它的根节点
  • 若任意节点的右子树不空,右子树上所有节点的值均小于它的根节点
  • 任意节点的左、右子树也分别为二叉查找树
  • 没有键值相等的节点

平衡二叉树

平衡二叉搜索树,又被称为AVL树,且具有以下性质:它是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是平衡二叉树

方便起见,为每一个节点附加一个数字,给出该节点左子树与右子树的高度差。这个数字称为结点的平衡因子(BF)。

平衡因子 = 结点的左子树高度-结点的右子树高度

平衡因子值1、0、-1,绝对值<=1

调整树结构

如果在一棵AVL树中插入一个新节点后造成失衡,则必须重新调整树的结构,使之恢复平衡

平衡调整四种类型

在这里插入图片描述

调整原则
  • 降低高度
  • 保持二叉树的性质

LL型调整

  • B结点带左子树一起上升
  • A结点成为B的右孩子
  • 原来B结点的右子树作为A的左子树

RR型调整

  • B结点带右子树一起上升
  • A结点作为B的左孩子
  • 原来B结点的左子树作为A的右子树

LR型调整

  • C结点穿过A、B结点上升
  • B结点成为C的左孩子,A结点成为C的右孩子
  • 原来C的左子树作为B的右子树,原来C的右子树做为A的左子树

红黑树

性质

  • 根属性,红黑树的根节点必须为黑色的

  • 红属性,红色结点的孩子必须为黑色的,不会出现两个红色的结点相连接,黑色的是可以的

  • 黑属性,所有的节点到它的叶子节点的路径都包含相同数目的黑节点

  • 红色节点数少于黑色节点数

  • 红黑树的最大高度为
    h = 2 l o g 2 ( n + 1 ) h = 2log_2(n+1) h=2log2(n+1)

红黑树和二叉平衡树区别

1、红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单。

2、平衡二叉树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值