B树、红黑树简单概念

原创 2015年07月10日 20:31:35

B树:

多路查找树,对于m阶的B树来说:

1.     根节点如果不是叶子节点至少有2个关键字,除根节点外的节点,至少含有m/2向上取整个关键字,不多于m-1个关键字。每个节点最多有m个子节点。

2.     内部节点含有k个有序的关键字,叶子节点不包含任何信息,指向这些叶子节点的指针都为NULL,且所有叶子节点在同一行。

3.     n个节点的B树高度是logm/2((n+1)/2)。

 

B+树:

是B树的变形

在数据库的实现中,多用B+树,因为B+树查找磁盘代价更低,中间的索引占的内存小,并且查找效率更加稳定,因为所有关键字的信息都在叶子节点上,所有的查找最后都是在叶子节点结束,而B树中间节点就可能退出。

1. 所有关键信息都在叶子节点上,并且有指向关键字的指针,内部节点只是索引。

并且叶子节点中的数据时有序排放的。


B*树:

B*树中间节点增加指向兄弟的指针;B*树定义了非叶子结点关键字个数至少为(2/3)*M,即块的最低使用率为2/3(代替B+树的1/2)。


三、红黑树

是一种二叉查找树,但是每个节点增加一个存储位来表示结点的颜色。

  1. 每个结点要么是红的要么是黑的。  
  2. 根结点是黑的。  
  3. 每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的。  
  4. 如果一个结点是红的,那么它的两个儿子都是黑的。  
  5.  对于任意结点而言,其到叶结点树尾端NIL指针的每条路径都包含相同数目的黑结点。 

正是红黑树的这5条性质,使一棵n个结点的红黑树始终保持了logn的高度,从而也就解释了上面所说的“红黑树的查找、插入、删除的时间复杂度最坏为O(log n)”这一结论成立的原因。


14、B树、B+树的概念及用途

B-树        是一种多路搜索树(并不是二叉的):        1.定义任意非叶子结点最多只有M个儿子;且M>2;        2.根结点的儿子数为[2, M];  ...
  • xie294777315
  • xie294777315
  • 2014年08月09日 15:48
  • 1455

ORACLE B树索引概念的理解

B树索引的概念: B树索引是一个典型的树结构,不紧oracle,很多实际应用都用到,在oracle里面分三个索引块 1 - 叶子节点块(leaf block):直接指向表里的数据行。 2 - 分支节点...
  • diyyong
  • diyyong
  • 2014年02月13日 14:26
  • 3236

B-树详细分析及B树B-树B+树B*树概念

B- 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。 B- 树又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的...
  • guanyasu
  • guanyasu
  • 2016年12月03日 11:04
  • 463

B-树的基本概念以及代码实现

B-树引入 当我们从一堆数据里查找某个数据的时候,常使用如下方法: 数据杂乱无规律—>线性搜索 —-> O(N) 数据有序—->二分查找—->O(log2N)—>最差情况下退化成单只树O(N) ...
  • JenaeLi
  • JenaeLi
  • 2017年06月03日 21:56
  • 1449

B树的C++代码实现

//这是我在学数据库时写的C++的B树的实现. B树有四个性质: 1.树中每个节点最多含有2m-1的节点; 2.除了根节点外,其他每个节点至少有m-1个孩子; 3.若根节点不是叶子节点则至少有...
  • yantingtao_sunny
  • yantingtao_sunny
  • 2016年04月24日 08:38
  • 1541

B树(Java)实现。

B-trees are balanced search trees designed to work well on disks or other directaccess secondary sto...
  • bangbangjunjunzhang
  • bangbangjunjunzhang
  • 2014年06月01日 21:39
  • 1381

B树的原理分析及实现

B树是为磁盘或其他直接存取的辅助设备而设计的一种平衡搜索树。许多数据库系统使用B树或B树的变种来存储信息。为何会采用这种树结构进行设计呢,《算法导论》18章讲得很到位,值得细细品味。    下面直接...
  • cyongxue
  • cyongxue
  • 2013年11月26日 22:11
  • 5806

B树索引+B树索引逻辑结构图+B树索引是怎么搜索数据+创建B树索引

B树索引 1创建索引不指定unique ,btimap 那么表示创建的索引是B树索引. 2B树索引的组织结构类似一颗树,主要数据集中在叶子节点上,叶子节点包含索引列的值和记录行对应的物理地址ro...
  • zhou920786312
  • zhou920786312
  • 2017年05月28日 00:41
  • 311

算法#16--B树完整代码Java实现

为什么要引入B树?一种外部多路查找树。而红黑树查找需要将内容存入内存。...
  • tclxspy
  • tclxspy
  • 2016年09月14日 10:30
  • 1482

B树和二叉排序树(如红黑树)、B树和B+树的区别

B树是为了提高磁盘或外部存储设备查找效率而产生的一种多路平衡查找树。 B+树为B树的变形结构,用于大多数数据库或文件系统的存储而设计。 B树相对于红黑树的区别 在大规模数据存储的时候,红...
  • susidian
  • susidian
  • 2016年02月26日 13:22
  • 4750
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:B树、红黑树简单概念
举报原因:
原因补充:

(最多只允许输入30个字)