搜索树总结

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所指子树中所有结点的关键字均大于Knn(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*树中非根和非叶子结点再增加指向兄弟的指针;

  3.B*树定义了非叶子结点关键字个数至少为(2/3)*M,即块的最低使用率为2/3(代替B+树的1/2)
  

5.键树

  定义:键树是一种特殊的查找树,它的某个节点不是包含一个或多个关键字,而是只包含组成关键字的一部分(字符或数字),比如:如果关键字是数值,则节点中只包含一个数位;如果关键字是单词,则节点中只包含一个字母字符。

6.2-3-4树

  

7.红黑树

  定义:红黑树是具有下列着色性质的二叉查找树:

  1.每个节点或者着红色,或者着黑色。

  2.根是黑色的。

  3.如果一个节点是红色的,那么它的子节点必须是黑色的。

  4.从一个节点到一个null引用的每一条路径必须包含相同数目的黑色节点。

8.后缀树

  未完待续

9.R树

  未完待续

 

posted @ 2015-02-07 11:12  山楂条子  阅读(224)  评论(0编辑  收藏  举报