"树"这种逻辑结构用来表示具有层次结构的数据,在生活中的应用有:行政区的划分、文件系统、思维导图等。
1. 树的递归定义、固有特性、特点是什么?
答:
递归定义:树是由n个结点组成的有限集合。n=0时,是一颗空树,n>0时,只存在一个结点作为树的根结点,其余结点可分为m个互不相交的有限集,每个子集本身又是一颗符合定义的树,称为根节点的子树。
固有特性:一棵树有若干棵互不相交的子树构成,而子树又由更小的若干棵子树构成。
特点:一种非线性数据结构,每个结点都可以有0个或多个后继结点,但有且只有一个前驱结点(根节点除外);数据节点按分支关系组织起来,反映了数据元素之间的层次关系(一对多)。
2. 分别解释 结点的度、树的度、分支/叶子节点、路径、路径长度、孩子/双亲/子孙/祖先结点、树的(高度)深度/层次、有序/无序树、森林的含义?
答:
① 结点的度:树中某个结点的子树的个数。
树的度:树中各结点的度的最大值。
② 分支结点:度不为零的结点。
叶子结点:度为领的结点。
③ 路径:从一个结点i出发,自上而下到达结点j所通过的树中结点的序列。
路径长度:从结点i到j经过的边数=通过结点个数-1。
④ 孩子结点:每个结点的后继结点为其孩子,相应的该节点为孩子的双亲结点;具有相同双亲的是兄弟结点;每个结点所有子树的结点为其子孙结点,从根结点到该结点路径上的结点为该结点的祖先结点。
⑤ 层数:根结点为第一层,依次向下加1;
高度:树中结点的最大层次。
⑥ 树中各结点子树按照一定次序从左向右排列,且相对次序不能随意交换,为有序树,反之无序
⑦ n个互不相交的数的集合。
3. 度为m的树和m叉树的异同?
答:m叉树:每个结点最多只能有m个孩子的树。
两者任意结点的度<=m;但度为m的树至少有一个结点的度为m,因此一定不是非空树,而m叉树允许所有结点的度<m,因此可以是一颗空树。