11.树Tree(1)

作者: Stone_説 | 来源:发表于2021-02-13 01:35 被阅读0次

    目录:
    1.树的概念
    2.树的术语
    3.树的种类
    4.树的存储与表示
    5.树的常见的应用场景

    1.树的概念

    树是一种抽象数据类型或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。
    它是由n(n>=1)个有限结点组成的一个具有层次关系的集合。把它叫做"树"是因为它看起来像一棵倒挂的
    树,也就是说它是根朝上,而叶朝下的。
    
    树.jpg

    树的特点:
    1.每个结点有零个或多个子结点
    2.没有父结点的结点称为根结点
    3.每一个非根结点有且只有一个父结点
    4.除了根结点外,每个子结点可以分为多个不相交的子树

    2.树的术语

    1.结点的度:一个结点含有的子树的个数称为该结点的度
    2.树的度:一棵数中,最大的结点的度称为树的度
    3.叶结点或终端结点:度为零的结点
    4.父亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点
    5.孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点
    6.兄弟结点:具有相同的父结点的结点称为兄弟结点
    7.结点的层次:从根开始定义起,根为第1层,根的结点为第2层,以此类推
    8.树的高度或深度:树中结点的最大层次
    9.堂兄弟结点:父结点在同一层的结点互为堂兄弟
    10.结点的祖先:从根到该结点所经历分支上的所有结点
    11.子孙:以某结点为根的子树中任一节点都称为该结点的子孙
    12.森林:由m(m>=0)棵互不相交的树的集合称为森林
    

    3.树的种类

    无序树:树中任意结点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;
    有序树:树中任意结点的子结点之间有顺序关系,这种树称为有序树;

    有序树分为还有以下种类:
      1.二叉树:每个结点最多含有两个子树的树称为二叉树;
        1.1完全二叉树:对于一棵二叉树,假设其深度为d(d>1).除了第d层外,其他各层的结点数目均已达到最大值,且第d层所有结点从左向右连续地紧密排列,
                      这样的二叉树被称为完全二叉树,其中满二叉树的定义是所有叶子结点都在最底层的完全二叉树。
        1.2平衡二叉树(AVL树):当且仅当任何结点的两棵子树的高度差不大于1的二叉树
        1.3排序二叉树(二叉查找树(英语:Binary Search Tree),也成为二叉搜索树,有序二叉树)
      2.霍夫曼树(用于信息编码):带权路径最短的二叉树称为哈夫曼树或最优二叉树
      3.B树:一种对读写操作进行优化的自平衡的二叉查找树,能够保持数据有序,拥有多余的两个子树
    

    完全二叉树:

    完全二叉树.jpg
    满二叉树:
    满二叉树.jpg

    4.树的存储与表示

    4.1顺序存储
    将数据结构存储在固定的线性结构中,然而在遍历速度上有一定的优势,但因所占空间比较大,是非主流二叉树。二叉树通常链式存储
    
    二叉树的顺序存储.jpg
    4.2链式存储
    常见树的链式存储都表示为二叉树进行处理,子结点最多为2个
    
    二叉树的链式存储.jpg

    5.树的常见的应用场景

    1.xml,html等,那么编写这些东西的解析器的时候,不可避免用到树
    2.路由协议就是使用了树的算法
    3.mysql数据库索引
    4.文件系统的目录结构
    5.所以很多经典的AI算法其实都是树搜索,此外机器学习中的decision tree也是树结构
    

    相关文章

      网友评论

        本文标题:11.树Tree(1)

        本文链接:https://www.haomeiwen.com/subject/ftrjxltx.html