1.二叉数排序树(Binary Sort Tree)
定义:或者是一颗空树;或者满足以下3个条件:
1.若它的左子树不空,则它的左子树上的所有节点的值均小于它的根节点的值
2.若它的右子树不空,则它的右子树上的所有节点的值均大于它的跟节点的值
3.它的左子树和右子树都是二叉排序树
2.平衡二叉树(Balanced Binary Tree 或 Height-Balanced Tree),又称AVL树。
定义:或者是一颗空树;或者满足以下两个条件:
1.它的左子树和右子树都是平衡二叉树
2.左子树和右子树的深度之差的绝对值不超过1
3.B-树
定义:一颗B-树,或为空树,或为满足下列特性的m叉树:
1.树中的每个节点之多有m棵字数;
2.若根节点不是叶子节点,则至少有两棵子树;
3.除根节点之外的所有非终端节点至少有ceil(m/2)棵子树;
4.所有的非终端节点中包含下列信息数据
(n,A0,K1,A1,K2,A2,...,Kn,An)
其中:Ki(i=1,...,n)为关键字,且Ki<Ki+1(i=1,...,n-1);Ai(i=0,...,n)为指向根结点的指针,且Ai-1所指子树中所有结点的关键字均小于Ki,An所指子树中所有结点的关键字均大于Kn,n(ceil(m/2)-1<=n<=m-1)为关键字的个数(或n+1为子树个数)。
5.所有的叶子节点都出现在同一层次上,并且不带信息(可以看作是外部节点或查找失败的节点,实际这些节点不存在,指向这些节点的指针为空)。
4.B+树
定义:一棵M阶的B+树和m阶的B-树的差异在于:
1.有n棵子树的节点中含有n个关键字。
2.所有的叶子节点中包含了全部的关键字信息,及指向含这些关键字记录的指针,且叶子节本身依关键字的大小自小而大的顺序链接。
3.所有非终端节点可以看成是索引部分,节点中仅含有其子树(根节点)中的最大(或最小)关键字
B*树:B*-tree是B+-tree的变体
1.在B+树的基础上,所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针);
2.B*树中非根和非叶子结点再增加指向兄弟的指针;
![](https://i-blog.csdnimg.cn/blog_migrate/da101eaf75e8e92d050eff8194ae807f.jpeg)
5.键树
定义:键树是一种特殊的查找树,它的某个节点不是包含一个或多个关键字,而是只包含组成关键字的一部分(字符或数字),比如:如果关键字是数值,则节点中只包含一个数位;如果关键字是单词,则节点中只包含一个字母字符。
6.2-3-4树
7.红黑树
定义:红黑树是具有下列着色性质的二叉查找树:
1.每个节点或者着红色,或者着黑色。
2.根是黑色的。
3.如果一个节点是红色的,那么它的子节点必须是黑色的。
4.从一个节点到一个null引用的每一条路径必须包含相同数目的黑色节点。
8.后缀树
未完待续
9.R树
未完待续