数据结构之树家族介绍

是一种非线性结构,是由n(n>=0)个结点组成的有限集合。

  • 节点的度:一个节点含有的子树的个数称为该节点的度
  • 树的度:一颗树中,最大的节点的度称为树的度
  • 树的深度:根节点层次为1,其他节点的层次是其父节点层次加1。一颗树中所有节点层次的最大值称为这棵树的深度。也就是树的层数
  • 树的遍历:先序遍历:根左右;中序遍历:左根右;后序遍历:左右根

二叉树是一种特殊的树,限制每个节点最多有两个子树,‘左子树’和‘右子树’。

  • 在非空二叉树中,第i层的节点总数不超过2^{i-1},i>=1
  • 深度为h的二叉树最多有2^{h}-1个结点,最少有h个结点(h>=1)
  • 对于任意一棵二叉树,如果其叶子节点数为n_{0},而读书为2的节点总数为n_{2},则n_{0} = n_{2} + 1
  • 具有n个节点的完全二叉树的深度为\left \lceil log_{2} \; k \right \rceil + 1

满二叉树:一个深度为k,且有2^{k}-1个结点的二叉树,被称为满二叉树

完全二叉树: 一棵二叉树中,除了最后一层外,其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则称此二叉树为完全二叉树

二叉查找树(Binary Search Tree),也称为二叉搜索树,是指一个空树或者具有下列性质的二叉树:

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

由二叉搜索树的定义可知,中序遍历二叉搜索树可得到一个关键的有序递增序列

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

B树(Balance Tree)也称为B-树,它是一棵多路平衡查找树,自平衡,它的每一个节点最多包含k个孩子,k被称为B树的阶。一个m阶的B树具有如下特征:

  • 根节点至少有两个子女
  • 每个中间节点都包含k-1个元素和k个孩子,其中m/2 <= k <= m
  • 每个叶子节点都包含k-1个元素,其中 m/2 <= k <= m
  • 所有的叶子结点都位于同一层
  • 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域划分
B树

B树主要应用于文件系统以及部分数据库索引

B+树是B树的一种变体,有这比B树更高的查询性能。一个m阶的B+树具有如下几个特征:

  • 有k个子树的中间结点包含k个元素,每个元素不保存数据,只用来索引,所有数据保存在叶子节点
  • 所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大循序连接
  • 所有的中间结点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素
B+树

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

马鹤宁

谢谢

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

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

打赏作者

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

抵扣说明:

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

余额充值