数据结构树--------B树、B+ 树、B- 树、二叉树的基本概念

一、树

1. 什么是树

1. 树是一种非线性的高级数据结构,在一些复杂的算法中都会用到树这种数据结构。

2. 树的定义: 树是n 个节点的有限集。当 n = 0 时,被称为空树。在任意一个非空树中,有一下几个特点:

  • 有且仅有一个特点的节点被称为根节点
  • 当 n  > 1 时,余节点可分为 m 个互不相交的有限集,每一个集合本身又是一个树,称为根的子树。

2. 树相关的术语

1、树结点:包含一个数据元素和若干个指向子树的分支。
2、孩子结点:节点的子树的根称为该结点的孩子。
3、双亲结点:B结点是A结点的孩子,则A结点是B结点的双亲。
4、兄弟结点:同一双亲节点的孩子结点。
5、堂兄结点:同一层上结点。
6、结点层次:根结点的层次为1,根结点的孩子结点的层次为2,以此类推。
7、树的高(深)度:树中最大的结点层。
8、结点的度:结点子树的个数。
9、树的度:树中最大的结点度。
10、叶子结点:也是终端结点,是度为0的结点。
11、分支结点:度不为0的结点(非终端结点)。
12、森林:互不相交的树集合。
13、有序树:子树有序的树,如:家族树。
14、无序树:不考虑子树的顺序。

二、树的分类

树的主要分类

1. 二叉树: 二叉树(binary tree)是树的一种特殊形式。二叉,顾名思义,这种树的每 个节点最多有2个孩子节点。注意,这里是最多有2个,也可能只有1个,或者没有孩 子节点。

  •  满二叉树: 除最后一层无任何子节点外,每一层上的所有节点都有两个子节点,最后一层都是叶子节点
  • 完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树
  • 平衡二叉树: 又被称为AVL树,它是一颗空树或左右两个子树的高度差的绝对值不超过 1,并且左右两个子树都是一棵平衡二叉树。
  • 二叉搜索树: 又称二叉查找树、二叉排序树(Binary Sort Tree)
  • 红黑树 : 是每个节点都带有颜色属性(颜色为红色或黑色)的自平衡二叉查找树

2. B树:平常所说的B-树,B-Tree 就是B树。它同时也是一种自平衡的树,它是一种多路搜索树(并不是二叉的),能够保证数据有序。同时它还保证了在查找、插入、删除等操作时性能都能保持在O(logn),为大块数据的读写操作做了优化,同时它也可以用来描述外部存储(支持对保存在磁盘或者网络上的符号表进行外部查找)

3. B+ 树: 在B树的基础上进行了改进,将分支变多,层数减少。层数变少就实现了IO次数的减少;叶子节点做了指针的连接,快速实现整颗数的遍历。所以对于数据库等磁盘查找的场景非常适合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值