B xx 树

作者: 钱塘 | 来源:发表于2017-06-26 16:09 被阅读17次

B 树

即二叉搜索树:

  1. 所有非叶子节点至多拥有两个子节点
  2. 所有结点存储一个关键字
  3. 非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树

B树查找顺序:从根结点开始,如果查询的关键字与结点的关键字相等,命中;如果比结点关键字小,进入左子结点继续查找,如果比结点关键字大,进入右子结点继续查找;

B- 树

是一种多路搜索树(并不是二叉的)
1. 定义任意非叶子结点最多只有M个子结点,且M>2
2. 根结点的儿子数为[2,M]
3. 除根结点以外的非叶子结点儿子数为[M/2,M]
4. 每个结点存放至少M/2-1和至多M-1个关键字,(至少2个关键字)
5. 非叶子结点的关键字个数 = 指向儿子的指针个数-1
6. 非叶子结点的关键字:K[1]

此坑待续~~~~

B+ 树

   B+树是B-树的变体,也是一种多路搜索树:

   1.其定义基本与B-树同,除了:

   2.非叶子结点的子树指针与关键字个数相同;

   3.非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树

   5.为所有叶子结点增加一个链指针;

   6.所有关键字都在叶子结点出现;

   如:(M=3)

B+的搜索与B-树也基本相同,区别是B+树只有达到叶子结点才命中(B-树可以在

非叶子结点命中),其性能也等价于在关键字全集做一次二分查找;

   B+的特性:

   1.所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;

   2.不可能在非叶子结点命中;

   3.非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层;

   4.更适合文件索引系统;

参考资料 http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html

相关文章

  • B xx 树

    B 树 即二叉搜索树: 所有非叶子节点至多拥有两个子节点 所有结点存储一个关键字 非叶子结点的左指针指向小于其关键...

  • mysql常用语句

    表A和表B的交集 SELECT * FROM A INNER JOIN B ON A.xx = B.xx

  • if(xx)与a==b

    if(xx) -- 括号内返回一个布尔值进行判断格式: a == b "==" -- 进行类型转换,再进行比较,然...

  • if(xx)和 a==b

    一.对于if()括号里的表达式会被强制转换为布尔类型。 判断原理如下: undefined --> false n...

  • if(xx)和 a==b

    一. if(xx)的判断 JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的...

  • if(xx)和a==b

    参考自https://developer.mozilla.org/zh-CN/docs/Web/JavaScrip...

  • if(xx)和a==b

    if条件判断 if(条件){条件符合 执行语句}else {条件不符合 执行语句}if()中的内容会被转换为布...

  • 关于 if(xx)和 a==b的判断的总结

    if(xx) 对于if(xx),是把xx转换成boolean在进行判断各类型转换布尔结果: a==b 对于a==b...

  • 关于if(xx)与a==b的判断

    关于if(xx)与a==b的判断 简单介绍下if(xx)和a==b的相关判断 if(xx)的判断 1.if(num...

  • B树、B-树、B+树、B*树

    B 树 通常我们所说的 B树 或 B-树,其实指的是一种树,这里我将其称为 B树。 一颗 M 阶的 B树具有以下特...

网友评论

      本文标题:B xx 树

      本文链接:https://www.haomeiwen.com/subject/wtrjcxtx.html