b树、b+树与红黑树的区别及应用场景

b树、b+树与红黑树的区别及应用场景

定义:

B 树可以看作是对2-叉查找树的一种扩展,即他允许每个节点有M-1个子节点。

  • 根节点至少有两个子节点
  • 每个节点有M-1个key,并且以升序排列
  • 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间
  • 其它节点至少有M/2个子节点

以下是一颗M=4阶的b树:
b树、b+树与红黑树的区别及应用场景_第1张图片
B+树是对B树的一种变形树,它与B树的差异在于:

  • 有k个子结点的结点必然有k个关键码;
  • 非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。
  • 树的所有叶结点构成一个有序链表,可以按照关键码排序的次序遍历全部记录。
  • 更适合文件索引系统(如数据库索引);

如下图,是一个B+树:
b树、b+树与红黑树的区别及应用场景_第2张图片
B和B+树的区别在于:
B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连,便于区间查找和遍历。

B+ 树的优点在于:

  • 由于B+树在内部节点上不好含数据信息,因此在内存页中能够存放更

你可能感兴趣的:(java,数据结构)