树
- 什么是树?
具有 个结点的有限集称为树。
-
当 时称为空树;
-
当 时,
- 仅有一个特定的称为根的结点
- 其余结点可分为 个互不相交的有限集
- 每一个集合本身又是一棵树,称为根的子树
-
树的特点
- 树是非线性结构,数据元素具有"一对多"的逻辑关系
- 树中的每个元素最多有一个前驱结点,有多个后继结点
-
树的结点
- 树的每一个数据元素称为结点,如上图中的 都是结点。
- 非空树中无前驱结点的结点称为根结点,如上图中的 为树的根结点。
- 根结点以外的分支结点称为内部结点。
- 结点的子树的根称为该结点的孩子结点,该结点称为孩子结点的父结点。
- 同一个父结点的孩子结点之间称为兄弟结点。
- 从根到某个结点的所经过的分支上的所有结点称为结点的祖先。
- 而以某结点为根的子树中的任一结点称为该结点的子孙。
- 没有任何孩子结点的结点称为叶子结点。
- 双亲在同一层的结点互为堂兄。
-
什么是结点的度和层次?
- 结点拥有的子树数称为该结点的度。
- 树内各结点的度的最大值称为树的度。
- 度不为 0 的分支结点称为非终端结点。
- 层次:从根开始计算,根为第一层,其孩子为第二层…若某结点在 层,则其孩子结点在 层。树中任一结点的层次等于其双亲结点的层次加 1。
- 树中结点的最大层次称为树的深度。
-
什么是有序树、无序树?
- 树中结点的各子树从左到右有次序,这样的树称为有序树。
- 树中结点的各子树无次序,这样的树称为无序树。
-
什么是森林?
由 棵互不相交的树的集合称为森林。
- 树与森林的关系
- 一棵树可以看成一个特殊的森林
- 森林中的各子树加上一个双亲结点,森林便变成了树
树与线性结构的比较
-
线性结构的元素之间具有一对一的关系:
- 第一个元素无前驱
- 最后一个元素无后继,
- 其他元素仅有一个前驱一个后继
-
树的元素之间具有一对多的关系:
- 根结点无双亲
- 叶子结点无孩子
- 其他结点仅一个双亲多个孩子
参考资料:
[1] 《数据结构(C语言版)》 严魏敏、吴伟民著
[2] 《数据结构(第3版)》 刘大有等著
来源:CSDN
作者:V_vista
链接:https://blog.csdn.net/qq_39953750/article/details/103896297