zoukankan      html  css  js  c++  java
  • B树和B+树

    B树

    1、B树

    B树,又称多平衡树,其所有节点的孩子最大值称B树的阶,m阶B树:

      1、树中每个结点最多有m棵子树。

      2、若根节点不是叶子结点,则至少有两棵树。

      3、非叶子和根结点至少有[m/2]取上值,也就是说至少含有[m/2]取上值-1个结点。

      4、所有的叶结点都出现在同一层次,且不带信息。

    2、B树的高度

      n个关键字、高度为h、阶数为m的B树高度为:logm(n+1)<=h<=log[m/2]取上值((n+1)/2)+1

    3、B树的插入

    4、B树的删除

    B+树

    B+树的基本概念

    一棵m阶B+树需要满足以下条件:

      1、每个分支结点最多有m棵树

      2、非叶根结点至少有两棵树,其他每个分支结点至少有[m/2]取上值棵子树

      3、结点的子树个数于关键数个数相同

      4、所有的叶结点包含全部的关键字以及指向相应记录的指针,而且叶结点将关键字按照大小顺序排列,并且相邻叶结点按大小顺序相互链接起来。

      5、所有的分支结点中仅包含它的各个子结点中关键字的最大值及其子结点的指针

    B+树插入和删除和B树类似。只是在查找的过程中,如果非叶结点的关键字等于给定值时并不终止,而是继续向下查找直到叶结点上的该关键字为止。

    m阶B树和B+树的差别:

      1、B+树中,n个关键字结点只含有n棵树,及每个关键字对应一颗子树;而B树中,具有n个关键字的结点含有n+1棵子树。

      2、在B+树中,每个结点关键字个数的范围是:[m/2]取上值~m,根结点范围是:1~m;在B树中,每个结点关键字个数的范围是:[m/2]取上值-1~m-1,根结点范围是:1~m-1;

      3、在B+树中,叶结点包含所有信息,所有非叶结点仅起到索引作用,非叶结点中的每个索引项含有对应子树中的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。

      4、在B+树中,叶结点包含了所有的关键字,非叶结点关键字也包含在叶子结点中;而B树中,叶结点包含的关键字和其他结点包含的关键字是不重复的。

  • 相关阅读:
    iptables
    linux时间同步
    iftop使用
    linux目录结构及定时任务
    awk基本用法
    二、Java面向对象(6)_深入变量
    二、Java面向对象(5)_static修饰符
    二、Java面向对象(4)_构造函数
    二、Java面向对象(3)_类和对象
    二、Java面向对象(2)_软件开发方式
  • 原文地址:https://www.cnblogs.com/ybf-yyj/p/9511468.html
Copyright © 2011-2022 走看看