数据结构:2-3树、B树、B+树、B*树
数据结构 B树 B+树 About 678 words多路查找树
muitl-way search tree
在二叉树中,每个节点最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,就是多路查找树,也叫多叉树。
节点的度
节点的子节点有几个。
树的度M
节点的度的最大值。
2-3树(二三树)
满足排序树的特点。
2-3
树是最简单的B
树。
2-3
树所有叶子节点都在同一层(只要是B
树都要满足所有节点在同一层这个条件)。
有两个子节点的节点叫二节点,二节点要么没有子节点,要么有两个子节点。
有三个子节点的节点叫三节点,三节点要么没有子节点,要么有三个子节点。
2-3
树由二节点和三节点组成。
2-3-4
树和2-3
树类似,也是一种B
树。
B树
注意:B-
树,不是B
减树,就是B
树!
B
:是Balance
平衡的意思,不是Binary
。
可以在非叶子节点命中数据。
B树的阶
节点的最多子节点的个数,比如2-3
树的阶就是3
,2-3-4
树的阶就是4
。
B+树
所有数据都在叶子节点的链表中,不可能在非叶子节点命中。
叶子节点有一个指针指向下一个叶子节点,所有适合范围查询(MySQL
范围查询时适合建立B+Tree
索引,等值查询时适合Hash
索引)。
数据只能在叶子节点,也叫稠密索引。
非叶子节点相当于叶子节点的索引,稀疏索引。
更适合文件系统。
B*树
B*
树是B+
树的变体,在B+
树的非根和非叶子结点再增加指向兄弟的指针。
非叶子节点关键字个数至少为(2/3)*M
,即块的最低使用率为2/3
,而B+
树的块的最低使用率为B+
树的1/2
。
B*
树分配新节点的概率比B+
树要低,空间使用率更高。
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓