1.二叉搜索树(AVL):

1.所有非叶子结点至多拥有两个儿子(Left和Right);

2.所有结点存储一个关键字;

3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;

二叉搜索树与二分查找性能比较:

二叉搜索树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么 二叉搜索树的搜索性能逼近二分查找;但它比连续内存空间的二分查找的优点是,改变 二叉搜索树结构(插入与删除结点)不需要移动大段的内存数据,甚至通常是常数开销;

2.b-树(即b树)

B树就是一种平衡的多叉查找树

1.每个节点至多可以拥有m棵子树;

2.根节点,只有至少有2个节点(要么极端情况,就是一棵树就一个根节点,单细胞生物,即是根,也是叶,也是树);

3.非根非叶的节点至少有的Ceil(m/2)个子树(Ceil表示向上取整)

4.非叶节点中的信息包括[n,A0,K1,A1,K2,A2,…,Kn,An],,其中n表示该节点中保存的关键字个数,K为关键字且Ki<Ki+1,A为指向子树根节点的指针;

5.从根到叶子的每一条路径都有相同的长度,也就是说,叶子节在相同的层,并且这些节点不带信息,实际上这些节点就表示找不到指定的值,也就是指向这些节点的指针为空。

3.b+树

b树的加强版;

与b树区别或独有特性;

1.有n棵子树的节点含有n个关键字(也有认为是n-1个关键字)

2.所有的叶子节点包含了全部的关键字,及指向含这些关键字记录的指针,且叶子节点本身根据关键字自小而大顺序连接

3.非叶子节点可以看成索引部分,节点中仅含有其子树(根节点)中的最大(或最小)关键字

查找过程:每次都要查到叶子节点,即使我们的非根非叶子节点为我们的查找值;

参考文章:https://www.cnblogs.com/xiaoxi/p/6868087.html

参考文章:https://www.jianshu.com/p/92ead7dd2e1f

悟道休言天命

原文地址:https://www.cnblogs.com/yunianzeng/p/12463256.html