一颗M阶(M>2)的B树,是一颗平衡的M路平衡搜索树,可以是空树或者满足下面几条性质> 1).根结点至少有两个孩子. 2).每个非根结点存在[M/2,M)">
当前位置:   article > 正文

浅析B树的分裂过程

浅析B树的分裂过程

B-树>

     最近一直在研究树的这种数据结构,今天实现了一颗适合外查找的平衡多叉树就是B树,有的地方也叫B-树(不要误读为"B减树"奥).当然了还存在B+树,B*树,在这片文章中主要讲述的是B-树的插入和中序遍历.

 一.B-树的性质>

     一颗M阶(M>2)的B树,是一颗平衡的M路平衡搜索树,可以是空树或者满足下面几条性质>

     1).根结点至少有两个孩子.

     2).每个非根结点存在[M/2,M)个孩子.

     3).每个非根结点有[M/2-1,M-1)个关键字,且以升序排列.

      非根结点的孩子始终比非根结点的关键字多一个.

     4).对于一个关键字来说它的左孩子的下标一定和它一样,它的右孩子的下标一定比它多一个.

     5).所有的叶子结点都在同一层

 B-树的结点结构>

     

  1. template<class K,int M>
  2. struct BTreeNode
  3. {
  4. //多给一个便于分裂
  5. K _keys[M]; //关键字数组
  6. BTreeNode<K,M> *_sub[M+1]; //链接子树的指针数组
  7. BTreeNode<K,M> *_parent;
  8. int _size; //关键字的个数
  9. BTreeNode()
  10. :_parent(NULL)
  11. ,_size(0)
  12. {
  13. for (size_t i=0;i<M;++i)
  14. {
  15. _keys[i]=K();
  16. _sub[i]=NULL;
  17. }
  18. _sub[M]=NULL;
  19. }
  20. };


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/397277
推荐阅读
相关标签
  

闽ICP备14008679号