树的定义
树(Tree)是n(n>=0)个结点的有限集。n = 0时称为空树。
在任意一颗非空树中都有以下特点:
(1)有且只有一个特定的称为根(Root)的结点;
(2)当 n > 1 时, 其余结点可分为 m(m > 0)个互不相交的有限集T1、T2、....、Tm,其中每个集合本身又是一颗树 ,我们称之为根的子树(SubTree) 如图所示:
说明:A就是根结点,其余的元素都是它的儿子
子树T1和子树T2他们俩就是根结点A的子树
还有两点需要我要强调一下:
1 n > 0 时根节点一定时唯一的,不可能存在多个根节点。
2 m>0是,子树的个数没有限制,但它们一定是互不相交的。如下图两颗树就不符合树的定义:
节点的分类
树的节点包含一个数据元素及若干指向其子树的分支。
度(Degree):就是你这个节点又多少个子节点。例如图中根结点A的度为 2。如果度为0(就是没有子节点)的话,我们称 之为叶子节点(Leaf)或终端节点,度不为0的节点称为非终端节点或叫分支节点,还有就是除根节点 外,分支节点也叫内部节点。然后树的度指的是树内各节点树的最大值。上图中最大值的节点是D度,为 3,所以树的度也为3。
结点间的关系
子节点(Child): 结点的子树根称之为该结点的孩子结点。 例: A的子节点有B 、C
父节点(Parent):结点的孩子结点称该结点为父结点,就是结点的直接上级,就是父结点,当然更专业一点叫双亲结 点。 例:B的节点是 A
兄弟结点(Sibling):如果对应的结点之间是同一个父结点,那么我们就称之为兄弟结点。 例:B 和 C的父节点都是A所有 是兄弟节点
结点的祖先:从根节点到该节点所经分支所有节点,称为该节点的祖先 例:H的祖先有 D、B、A
子孙节点:以某节点为根的子树中的任一节点都称为该节点的子孙 例:B的子孙有D、G、H、I
树的其他相关概念
节点层次(Level):从根节点开始,根为第一层,根的孩子节点在第二层。
堂兄弟节点:如果其父结点在同一层的结点互为堂兄弟。例如:图中D、E、F 互为堂兄弟
树的深度(Depth):树种结点的最大层次称为树的深度或高度 例:图种的树高度为 4
有序树&无序树:如果树中结点的各个子树看成从左到右是有次序的,不能互换。那么这就是有序树反之为无序树
森林(Forest):是m(m>=0)颗互不相交树的集合。对应树中每个结点而言,其子树的集合既为森林。
本篇文章摘录自:大话数据结构