• 搜索树总结


    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树

      未完待续

  • 相关阅读:
    Java 集合类
    Java 中的四种引用及垃圾回收策略
    Java 类的加载过程(阿里面试题)
    JMeter进行一次简单的压力测试
    python使用 HTMLTestRunner.py生成测试报告
    python读取配置文件
    python的IDE工具-- Pycharm
    selenium webdriver+python基本操作
    SQL开发测试使用基础
    python学习笔记
  • 原文地址:https://www.cnblogs.com/zhutianpeng/p/4251744.html
Copyright © 2020-2023  润新知