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)”这一结论成立的原因。


相关文章推荐

4阶b树与红黑树

任何一棵红黑树都对应一棵4阶b树,一棵4阶b树所对应的红黑树可能有多棵,但大同小异。 直接记忆红黑树的插入删除很困难,而4阶b树的插入删除操作对应红黑树的旋转与变色,所以每做一步,写出对应的4阶b树...
  • ccworm
  • ccworm
  • 2015年12月08日 18:00
  • 940

红黑树-使用C++实现-简单练习

  • 2009年12月05日 13:26
  • 5KB
  • 下载

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树

AVL树与红黑树(R-B树)的区别与联系

AVL树(http://baike.baidu.com/view/593144.htm?fr=aladdin),又称(严格)高度平衡的二叉搜索树。其他的平衡树还有:红黑树、Treap、伸展树、SBT。...

红黑树R-B-tree

http://blog.csdn.net/v_july_v/article/details/6105630 http://www.cnblogs.com/skywang12345/p/3245399...
  • yymmz
  • yymmz
  • 2016年04月03日 11:18
  • 385

数据结构 之 索引技术(线性、倒排、动态检索B+、位索引、红黑树)

线性索引 定义:按照关键码的顺序进行排序,文件中的指针指向存储在磁盘上的文件记录起始位置或者主索引中主码的起始位置。 优点:可以对变长数据库记录访问,对数据进行高效检索,例如二分检索;顺序处理:比...

红黑树和B树应用场景总结

红黑树和B树应用场景有何不同? 2者都是有序数据结构,可用作数据容器。 红黑树多用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树。 B树多用在内存里放不下,大部分数...

二叉树之二BST树,AVL树详解及B树和红黑树原理分析

B树原理及其分析 在大规模数据存储方面,大量数据存储在外存磁盘中,而在外存磁盘中读取/写入块(block)中某数据时,首先需要定位到磁盘中的某块,如何有效地查找磁盘中的数据,需要一种合理高效的外存数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:B树、红黑树简单概念
举报原因:
原因补充:

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