一个m阶的B树(m阶就是含有m个分杈)

特点:

1、根节点的孩子个数至少为2个

2、除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子,至多含有m个孩子

其中ceil(x)是一个取上限的函数,结合1,2特点,除根结点和叶子结点外,每个节点含有[m/2<,m]

3、每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

4、所有叶子结点都出现在同一层,

5、每个节点中的元素从小到大排列

一个m阶的B+树(m阶就是含有m个分杈)

特点:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

2.所有的叶子结点中包含了全部元素的信息,且叶子结点本身依关键字的大小自小而大顺序链接

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

B+树与B-树对比

相比B-树:由于B+树的中间节点不存在data数据,所以相同单个页能存储更多的节点元素信息,因此B+树比B-树更'矮胖',因此IO磁盘次数更少。其次,B+树必须找到叶子节点,但B-树不需要,因为中间节点存储元素,如果找到直接返回,无需到叶子节点。

B-树的范围查询是依靠树的中序遍历进行查询的,相比B+树来说,B+树直接进行叶子节点遍历即可,因此B-树范围查询性能会低一点。

红黑树的5个性质 

如下图所示,即是一颗红黑树(下图引自wikipedia:http://t.cn/hgvH1l):

1.每个结点要么是红的要么是黑的

2.根结点是黑的

3.每个叶子结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的

4.如果一个结点是红的,那么它的左右儿子都是黑的

5.对于任意结点而言,其到叶结点树尾端NIL指针的每条路径都包含相同数目的黑结点

红黑树的查找、插入、删除的时间复杂度最坏为O(log n)

红黑树和自平衡二叉(查找)树区别1、红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入、删除最多只需要三次旋转就能达到平衡,实现起来也更为简单。2、平衡二叉树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知

B数和B+树、红黑树数据结构的特点相关推荐

  1. 【Linux 内核】CFS 调度器 ⑥ ( CFS 调度器就绪队列 cfs_rq | Linux 内核调度实体 sched_entity | “ 红黑树 “ 数据结构 rb_root_cached )

    文章目录 一.CFS 调度器就绪队列 cfs_rq 二.Linux 内核调度实体 sched_entity 三." 红黑树 " 数据结构 rb_root_cached 一.CFS ...

  2. C++ 第八节数据结构 第七节 ——二叉搜索树 AVL树 红黑树(底层原理图+模拟实现)

    第一次,C++和数据结构联合推出,倾情献上呦~~ 给个关注吧 23333~~~~~~(现在每天系统就给我一个机器人的粉丝量了55555~~~~~) 本节内容,我们将着重来探讨 二叉树 中特殊的两种树- ...

  3. 《漫画算法2》源码整理-1 二分查找树 AVL树 红黑树

    二分查找树 public class BinarySearchTree {private Node root;//查找结点public Node search(int data) {Node targ ...

  4. STL源码剖析 关联式容器 树 红黑树、二叉搜索树、平衡二叉搜索树

    所谓关联式容器,观念上类似关联式数据库(实际上则简单许多):每笔数据(每个元素)都有一个键值(key)和一个实值(value) 2.当元素被插入到关联式 容器中时,容器内部结构(可能是RB-tree, ...

  5. 数据结构中的树 --- 红黑树

    红黑树是一种几近平衡的二叉搜索树, 但不是AVL树. 1 红黑树的一些特殊性质 1. 每个节点皆为红色或者黑色. 2. 根节点是黑色. 3. 每个叶子节点(NIL)是黑色(注意, 每个叶子节点必须都为 ...

  6. 0202插入删除-算法第四版红黑树-红黑树-数据结构和算法(Java)

    文章目录 4 插入 4.1 序 4.2 向单个2-结点插入新键 4.3 向树底部的2-结点插入新键 4.4 向一棵双键树(3-结点)中插入新键 4.5 颜色调整 4.6 根结点总是黑色 4.7 向树底 ...

  7. 01基础-算法第四版红黑树-红黑树-数据结构和算法(Java)

    文章目录 1 前言 2 定义 2.1 替换3-结点 2.2 等价定义 2.3 一一对应 3 基础 3.1 颜色表示 3.2 结点表示 3.2 旋转 3.3 旋转后重置父结点的链接 后记 1 前言 目前 ...

  8. 高级数据结构与算法 | 红黑树(Red-Black Tree)

    文章目录 红黑树 红黑树的概念 红黑树的性质 红黑树与AVL树 红黑树的实现 红黑树的节点 红黑树的插入 红黑树的查找 红黑树的验证 完整代码 红黑树 红黑树的概念 红黑树,是一种二叉搜索树,但在每个 ...

  9. 《恋上数据结构第1季》红黑树(未完)

    红黑树(Red Black Tree) 红黑树介绍 红黑树 与 4阶B树 红黑树 与 2-3-4树 等价转换 红黑树基础代码 完整的红黑树系列代码(恐怖如斯) 二叉树 BinaryTree.java ...

最新文章

  1. 用EXCEL实现时间戳格式和日期格互转
  2. 图形处理(十二)拉普拉斯网格优化、最小二乘网格模型光顺
  3. Django框架连接MySQL数据库
  4. 记录一次Socket的异常:InputStream.read()阻塞问题
  5. 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty
  6. Java 文件 IO 操作
  7. C++ 二进制文件写操作
  8. 6-6 归并排序(递归法) (10分)
  9. 【Fllink】Connection to ZooKeeper suspended. Can no longer retrieve the leader from ZooKeeper
  10. 120 -算法 - 枚举 数学类 4138:质数的和与积
  11. java根据微信小程序code获取用户openId
  12. 微信小程序模板消息推送
  13. pe擦除服务器硬盘,如何使用老毛桃winpe的分区助手安全擦除移动硬盘或本地硬盘数据?...
  14. WebLogic安装说明
  15. 计算机考研复试题(近十万字)
  16. 【sketchup 2021】草图大师的场景优化工具3【新建材质、材质编辑面板的详细说明】【重要】
  17. CAD使用圆,椭圆,直线综合练习
  18. 使用Adobe illustrator (AI)快速制作图标
  19. 2019年机器学习/ 深度学习热门论文集锦
  20. PMP续证费用和流程

热门文章

  1. python ppt 图片_利用Python将PPT转换为图片并合成长图
  2. Binary XML file line #16 in: Error inflating class unknown
  3. python中PIL的安装参考教程
  4. K8S环境部署jaeger-all-in-one
  5. win7怎么装python_如何在win7上面安装python的包
  6. 微信小程序之多规格选择
  7. 安装pyltp模块详细教程(windows下python安装)
  8. MySQL拷贝表结构、表数据总结
  9. 微信小程序实现展示图片(图片推广小程序可以使用)
  10. 运用审查元素下载网页视频