• 【知识强化】第一章 绪论 4.1 树的基本概念


    接触第一个非线性的逻辑结构,也就是树形结构。

    那么树形结构我们会学习哪些主要的知识点呢?我们会学习两种树形结构,分别是二叉树和树和森林。在二叉树当中我们将学习二叉树的基本概念,也就是它的定义、特点以及对应的存储结构。然后我们将学习二叉树的遍历,以及一种特殊的二叉树叫做线索二叉树。最后我们将介绍几个有关二叉树的应用,分别是二叉排序树、平衡二叉树以及哈夫曼树。而在树和森林当中我们会学习树的基本概念,存储结构以及它们的遍历方法。还有一个重要的考点就是树、森林、二叉树之间的相互转化方法。最后我们将介绍树的一个小应用叫做并查集。好,这就是本章所要学习的主要知识点。

    那么在本节课当中我们会先讲树的基本概念。

    在第一章当中我们学习过一种树形结构,它是一对多的关系。所以首先树,一定是一种逻辑结构。树是n个结点的有限集合,这里n是大于等于0的。所以树是可以为空的。当n=0时称为空树。那么n不等于0时也就是任意非空树应该满足哪些条件呢?第一个条件是有且仅有一个特定的称为根的结点。

    那么在这样一棵树当中,它的根是不是就是A结点啊。根结点这个称呼非常形象,也就是代表着最源头的那个意思。

    接着我们来看第二个需要满足的条件就是当n大于1时,也就是一棵非空树时,其余结点可分为m个互不相交的有限集合。其中每一个集合本身又是一棵树,称为根结点的子树。我们可以把B、C、D三个结点看作以A为根,树的子树。B、C、D三个结点,分别代表着只有1个结点的子树,当然它也可以有多个结点。

    比如我们再增加两个结点,那么B、E、F就组成了这样一棵子树。在这棵子树当中,B是子树的根。好,这就是第二个所满足的条件。那么说到这里大家有没有想到,第三章我们学过一种叫做递归定义的知识点,大家有没有发现树的定义是不是就是一种递归的方法啊,树是一种递归的数据结构。那么大家回忆一下,树作为这样一种树状结构的逻辑结构,它有哪些特点呢?第一个特点是除根结点以外,每一个结点都有唯一的前驱结点。例如在PPT当中的这棵树,B、C、D三个结点的前趋结点是A。E、F的前趋结点是B,它们都有唯一的前趋结点。而每一个结点都有0个或多个后继结点,A的后继结点是B、C、D三个,B的后继结点是E、F。而E、F、C、D的后继结点是0个。好,这就是前趋结点以及后继结点的知识。

    那么我们有这样一个结论,n个结点的树中,只有n-1条边。它是怎么样得来的呢?正如我们刚才所说,每一个结点都有唯一的前趋结点,但是除了根结点以外。那么边是不是代表着这样一种前趋后继的逻辑关系啊,而A是没有前趋结点的,所以有n-1条边。这就是我们为什么有这样一条结论。好,这就是树的定义。

    接下来我们来学习几个重要的树的基本术语。我先给大家画出一个树的例子,方便我们理解基本术语。首先第一对基本术语是祖先结点和子孙结点,它们代表什么样的结点呢?我们来看这样一个例子。

    现在我们标记K,若以A,也就是以根结点出发,怎样寻找到K这样一个结点呢?

    我们会按照这样一个路径,这样一个顺序来找到K结点。那么在该路径上除了K结点以外,所有的结点都可以称为K的祖先结点。而反过来,K则是它们的子孙结点。这就是祖先结点和子孙结点的概念。

    好,接下来我们来看第二对结点,就是双亲结点和孩子结点。什么叫双亲结点,什么又叫做孩子结点呢?还是来举一个例子,大家就明白了。那么我们发现在该条路径上,离K结点最近的祖先结点是E结点。也就是说,E是K的前趋结点。那么此时,我们就把E称为K的双亲结点,而K称为E的孩子结点。这就是双亲结点以及孩子结点的概念。

    最后我们还有一个结点叫做兄弟结点。什么是兄弟结点呢?我们发现既然E是作为双亲结点,是不是还有L结点啊。

    所以此时我们把L、K称作为兄弟结点,它们有共同的双亲结点。好,这就是五种结点的概念。

    接着我们来学习第二个基本术语,也就是度的概念。什么是度呢?树中一个结点的子结点的个数称为该结点的度。大家注意一下这里是子结点。和我们之后学习图的度有细微的差别。

    接下来我们就来举个例子。我们标记B结点,它的度是多少呢?

    它有两个子结点,分别是E和F,所以B结点的度为2。好这是结点的度。

    那么树的度是什么呢?我们称树中最大度数称为树的度。在这棵树当中,A结点度为3,B结点的度为2,C结点度为1,D结点度为3,E的度为2,其余的结点度都为0。所以,树的度为3,是所有结点度的最大值。好,这就是度的相关概念。

    接着我们来学习下一段基本概念,也就是分支结点和叶子结点。什么是分支结点呢?度大于0的结点称为分支结点,也就是说它有孩子结点,那么在这个过程当中A、B、C、D、E就是分支结点,它们都有孩子结点,度都大于0。而其余的结点称为叶子结点,也就是度为0的结点,没有孩子的结点。好,这就是分支结点和叶子结点的概念。

    好,接下来是三个基本概念,分别是结点的层次、结点高度以及结点的深度。什么是结点的层次呢?我们将根结点也就是A结点定义为第一层,接下来也就是第二层、第三层以及第四层。大家要注意一点的是,有些教材可能也称第一层为第0层,在做题时我们也需要注意一下。好,接下来是结点高度。什么是结点的高度呢?它是从叶结点开始自底向上逐层累加的。

    例如B结点高度为3,它分别经历了第四层、第三层和第二层。而结点深度刚好相反,它是从根结点开始自顶向下逐层累加的,所以B的结点的深度是2。从根结点开始,第一层、第二层。好,这就是结点的层次、高度以及深度的概念。

    好接着我们还有这样的概念,树的高度或者是深度是树中结点最大的层数。为什么这里既是高度也是深度呢?有没有发现高度和深度是相等的。例如在这个例子当中,树的最大高度为4,最大深度也为4。这就是树的高度和深度。

    好,接下来是有序树和无序树。

  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/11402105.html
Copyright © 2020-2023  润新知