多路查找树 简单介绍

二叉树操作效率较高,但也存在一些问题。

  • 在构建二叉树时,需要多次进行i/o操作(因为数据很可能是通过数据库或本地文件中获取的),节点很多,造成二叉树的层数也多,会降低操作速度。

因此就提出了多路树。允许每个节点可以有更多的数据项和更多的子节点,就是多叉树。比如2-3树,2-3-4树就是多叉树,多叉树通过重新组织节点,减少树的高度,能对二叉树进行优化。

1、2-3树

2-3树:
Java数据结构与算法:多路查找树简单介绍、2-3树、B树、B+树、B星树简单介绍理解

2-3树是最简单的B树。需要保证顺序。

性质:

  • 2-3树所有的叶子节点都在同一层 (只要是B树都满足这个性质)
  • 有两个子节点的节点叫做二节点,二节点要么有两个子节点,要么没有子节点
  • 有三个子节点的节点叫做三节点,三节点要么有三个子节点,要么没有子节点
  • 2-3树是由二节点和三节点构成的树

二节点的左子节点的值小于二节点的值,右子节点的值大于二节点的值;三节点的左子节点的值小于三节点中最小值,中子节点的值在三节点最小值与最大值之间,右子节点的值大于三节点中最大值。

2-3树原理

2、B树介绍

B树(B-tree)

Java数据结构与算法:多路查找树简单介绍、2-3树、B树、B+树、B星树简单介绍理解

B树的阶:节点的最多子节点的个数。比如2-3树的阶是3,2-3-4树的阶是4

B树搜索性能等价于在关键字全集内做一次二分查找。

mysql数据库的查找,索引的数据结构是B树或B+树

3、B+树介绍

B+树是在B树上进行变化得来

Java数据结构与算法:多路查找树简单介绍、2-3树、B树、B+树、B星树简单介绍理解

B+树说明:
Java数据结构与算法:多路查找树简单介绍、2-3树、B树、B+树、B星树简单介绍理解

4、B*树介绍

B*树是在B+树基础上变化得来。

Java数据结构与算法:多路查找树简单介绍、2-3树、B树、B+树、B星树简单介绍理解

B*树比B+树的空间使用率高。

相关文章: