树的基本概念
树的定义
数是有n个节点组成的有限集合(记为T)。其中
- 如果n=0,它是一颗空树,这是树的特例
- 如果n>0,这n个节点中存在(且仅存在)一个节点作为树的根节点,简称为根;其余节点可分为m(m>=0)个互不交集的有限集T1,T2,Tn,其中每个子集本身又是一颗符合本定义的树,称为根的子树
- 树的定义是递归的
- 树是一种非线性结构。
树的逻辑表示方法
- 树形表示法
- 文氏图表示方法
- 凹入表示法
- 括号表示法
树的基本术语
- 节点的度与树的度:树中某个节点的子树的个数称为该节点的度。树中各节点的度的最大值称为树的度,通常将度为m的树称为m次树
- 分支节点与叶子节点:度不为0的节点称为非终端节点,又叫分支节点。度为零的节点称为终端节点或叶子节点。
- 路径与路径长度:对于任意俩个节点 ki和kj ,若树中存在一个节点序列 ki,ki1,ki2,....,kin,kj ,使得序列中除 ki 外的任一节点都是其在序列中的前一个节点的后继节点,则称该节点序列为 ki 到 kj 的一条路径。路径长度等于路径所通过的节点数目减1(即路径上分支数目)。
- 孩子节点,双亲节点和兄弟节点
- 节点的层次和树的高度:树中的每个节点都处在一定的层次上。节点的层次从树根开始定义,根节点为第一层,它的孩子节点为第二层,以此类推,一个节点所在的层次为其双亲节点所在的层次加1.树中节点的最大层次称为树的高度(或树的深度)
- 有序树和无序树:若树中各节点的子树是按照一定的次序从左向右安排的,且相对次序是不能随意变换的,则称为有序树,否则称为无序树
- 森林:n(n>0)个互不相交的树的集合称为森林。森林的概念与树的概念十分相近,因为只要把树的根节点删去就成了森林。反之,只要给n棵独立的树加上一个节点,并把这n棵树作为该节点的子树,则森林就变成了树。
树的性质
性质1 树中的节点数等于所有节点的度数加1
证明:略
性质2 度为m的树中第i层上之多有 mi−1(i≥1) 个节点
证明:采用数学归纳法证明
对于第一层,因为树中的第一层上只有一个节点,即整个树的根节点,而由i=1代入 mi−1 ,得 mi−1=m1−1