关闭

B树、红黑树简单概念

315人阅读 评论(0) 收藏 举报
分类:

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:116924次
    • 积分:2724
    • 等级:
    • 排名:第13779名
    • 原创:105篇
    • 转载:207篇
    • 译文:0篇
    • 评论:9条
    最新评论