树与二叉树

本文深入解析数据结构核心概念,涵盖节点、二叉树、平衡二叉树、B-树、B+树及红黑树等关键知识点,揭示各类型树的特点与应用。

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

基本术语

  • 节点:包含一个数据元素以及若干个指向其子树的分支。
  • 节点的度:该节点拥有子树的数量。
  • 叶子节点:度为0的节点。
  • 树的度:是树内各个节点的最大值。
  • 节点的层次:从根开始定义,根节点为第一层,根的孩子为第二层。
  • 孩子、双亲:节点的子树称为孩子;该节点称为孩子的双亲。
  • 深度:树中节点的最大层次。
  • 森林:多棵互不相交的树的集合。
  • 有序树:树中的节点从左至右是有次序(不可交换)的。

二叉树

  • 特点:每个节点最多有两棵子树,并且其次序不可颠倒。
  • 5种基本形态:空二叉树、只有根节点、根节点与左子树、根节点与右子树、根节点和左右两个子树。
  • 满二叉树:一棵深度为k且有2^k -1 个节点的二叉树。
  • 完全二叉树:从根节点开始编号,从上至下、从左至右编号,与满二叉树的编号一一对应。
  • 二叉排序树:若左右子树均不为空,则左子树上的所有关键字均小于根关键字的值;右子树上的所有关键字均大于根关键字的值;左右子树均是一棵二叉排序树。
    在这里插入图片描述
  • 性质:

 1. 二叉树的第i层至多有2^(i-1)个节点。 
 2. 深度为k的二叉树最多有2^k -1 个节点。
 3. 任何一棵二叉树,其叶子节点数为O,度为2的节点为m,则O = m + 1。

平衡二叉树(AVL树):

其是一种特殊的二叉排序树,其左右子树都是平衡二叉树,且左右子树高度之差的绝对值不超过1。

平衡方式:

平衡调整方式有:LL、RR、LR、RL四种方式。
在每次插入或者删除结点时,找到最小不平衡二叉树,然后通过平衡调整方式进行旋转调整平衡。
平衡方式

B-树(B树)

B-树中所有结点孩子的结点个数的最大值称为B-树的阶,称作(m)。
例如:
建立一个5阶的B-树,树的关键字个数为2~4个。(【5/2 -1】(向上取整)、n-1)
除根结点外,关键字个数取值范围:(m/2) - 1 < n < m-1
添加关键字时,如果出现超出关键字范围,则需要取出第 【5/2】个数座位根节点,并将其左右的关键字放到该结点的左右两个分支上。
插入数字15前的树
插入数字15后的树

B+树

除根结点外,关键字个数取值范围:(m/2) <= n <= m

红黑树

红黑树就是一种平衡二叉树,除了符合二叉查找树的特性之外,还具有下列的特性:

  1. 节点是红色或者黑色

  2. 根节点是黑色

  3. 每个叶子的节点都是黑色的空节点(NULL)

  4. 每个红色节点的两个子节点都是黑色的。

  5. 从任意节点到其每个叶子的所有路径都包含相同的黑色节点。

森林转为二叉树

森林

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值