注:不完全,以后持续更新。
1、BST树,即二叉查找树或二叉排序树
定义:或者是一颗空树,或者是具有以下性质的二叉树:
(1)若左子树不为空,则左子树上的所有节点均小于他的根节点;
(2)若右子树不为空,则右子树上的所有节点均大于根节点;
(3)他的左右子树也分别为BST树。
2、AVL树,即平衡二叉树
定义:或者是一颗空树,或者满足以下性质的二叉树:
(1)每一个节点的左子树的深度和右子树的深度只差的绝对值不超过1;
(2)左子树和右子树也均为平衡二叉树。
3、B-树(读B数)
定义:一颗m阶的B-树或者为一颗空树,或者需要满足以下条件:
(1)树中每个节点至多有m个子树;
(2)若根节点不是叶子结点,则至少需要两颗子树;
(3)除根节点之外的所有非终端节点至少有m/2课子树;
(4)所有的非终端节点中包含下列信息数据(关键字个数,指针0,关键字1,指针1,......关键字n,指针n);
(5)所有叶子节点都在同一层次上,并且不带信息。
4、B+树
定义:一颗m阶的B+树与m阶的B-树的区别是:
(1)一个节点的关键字树和子树数相等;
(2)所有的叶子节点包含了全部的关键字信息。及指向含这些关键字记录的指针,且叶子节点本身依据关键字的大小由小到大排列。
(3)所有非终端节点可以看成是索引部分,节点中仅包含其子树中最大(或最小)的关键字。
5、B-树与B+树作为索引的区别:
(1)B+树索引更加稳定,均需索引至叶子节点为止:因为B+树的所有叶子节点包含全部的关键字信息;
(2)在文件系统中进行索引时,速度快:因为B+树的非终端节点不包含卫星数据,因此每个磁盘页能够存储更多的关键字,减少了IO次数,大大提高检索效率;
(3)进行范围查找时,B+树具有更高的效率:因为B+树的的所有叶子节点依据关键字的大小排列,并以链表形式连接,只要找到范围的下限,顺着链表就能找到该范围内的所有数据。
6、红黑树
7、堆