为什么要使用红黑树,B树和B+树

 时间:2024-10-24 19:35:18

红黑树,B树,B+树都是为了提高数据的查找效率。它们有各自的特性,与最佳使用场景。

工具/原料

电脑

一、红黑树

1、红黑树的特性:(1)每个节点或者是黑色,或者是红色;(2)根节点是黑色;(3)每个叶子节点(NIL)是黑色。 (注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点);(4)如果一个节点是红色的,则它的子节点必须是黑色的;(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。[这里指到叶子节点的路径,包含n个内部节点的红黑树的高度是 O(log(n));

为什么要使用红黑树,B树和B+树

二、B树

1、B树的特性(一棵m阶的B树的满足条件):(1)每个节点至多有m棵子树;(2)根节点除外,其它每个分支节点至少有【m/2】棵子树;(3)根节点至少有两棵子树(除非B树只包含一个节点);(4)所有叶子节点在同一层上,B树的叶子节点可以看成一种外部节点,不包含任何信息;(5)有j个孩子的非叶结点恰好有j-1个关键码,关键码按递增次序排列。B 树又叫平衡多路查找树。如图:

为什么要使用红黑树,B树和B+树

三、B+树

1、B+树的特性:(1)有 k 个子树的中间节点包含有 k 个元素(B 树中是 k-1 个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点;(2)所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接;(3)所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。B+树是B树的变种,有着比B树更高的查询效率。

为什么要使用红黑树,B树和B+树

2、B+树的使用场景:B+树是在B树的基础上进行改造的,他的数据都在叶子节点,同时叶子节点之间还加了指针形成链表。B+树多吹涡皋陕用于数据库中的索引。为什么要用B+树:因为在数据库中select常常不只是查询一条记录,常常要查询多条记录。比如:按照id的排序的后10条。如果是多条的话,B树需要做中序遍历,可能要跨层访问。而B+树由于所有数据都在叶子结点,不用跨层,同时由于有链表结构,只需要找到首尾,通过链表就能够把所有数据取出来了。

  • 英语考试中表示“看”的单词、词组怎么区分?
  • 扁豆有什么营养价值和功效?
  • 益生菌到底是什么?
  • 老年人夏天食欲不好怎么办?
  • 父母如何看待子女婚姻问题
  • 热门搜索
    文明旅游 北京旅游公司 江浙旅游 旅游预订 上海周边旅游攻略 旅游线路报价 兵马俑旅游 陕西旅游局 台湾旅游景点介绍 冀晋鲁旅游惠民卡