链表--》二叉树--》多叉树--》二叉平衡树--》红黑树---》多路搜索树btree--》b+tree
根据子节点的个数可以划分成N叉树
(一般N ≥ 2
),N叉树
拥有的特征是每个节点至多有N个子节点。
比如,N = 2
时,称为二叉树,每个节点至多只有2个节点。
1、链表:当二叉树没有在分叉的时候就是链表(n=1)
2、二叉树(n=2)
3、当n=3的时候,n就是3叉树,n=n 的时候那就是n叉树,多叉树就是这样子
4、平衡二叉搜索树(红黑树)
平衡二叉搜索树
,顾名思义,是二叉树同时满足平衡二叉树
以及二叉搜索树
的定义,即二叉树不但中序遍历为递增序列,并且树还平衡。
红黑树
由于平衡二叉搜索树
的定义比较苛刻,实际过程中生成并维持一颗平衡二叉搜索树
是比较复杂的,而红黑树
放宽了平衡
条件的限制,引入弱平衡
的概念。
红黑树的定义:
a.节点是红色或黑色。
b.根是黑色。
c.所有叶子都是黑色(叶子是NIL节点)。
d.每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)
e.从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点(简称黑高)
5、 B-tree
B树
是多路搜索树,对于树中的非叶子节点,如果放了m
个关键字,就同时需要放m+1
个指向子节点的指针,根节点的子节点数为[2, N]
,其他节点的子节点数为[N/2,N]
。并且所有关键字在整颗树中只出现一次,非叶子结点可以命中所有叶子结点位于同一层。
6、b+tree
B+树
是在B树
上进行改造升级,把叶子节点层串成一个链表
MySQL
数据库的表结构底层数据存储用的就是B+
树。