定义:一个树是由n个元素组成的有限集合。其中,每个元素叫结点(node)
性质:
- 有一个特殊的结点叫根节点(root node)
- 从图论的角度,一个树有n-1条边,所以它是无环的。同时,它是连通的,因为可以直接或间接地从一个结点走到另一个结点
- 除了根结点以外,其余的结点可以分成m(m>=0)个互不相交的有限集合 T0,T1,T2...... 其中,每一个集合都叫做这个树的子树
下面举个栗子捏
不难发现,可以分为3个子树(一定要记住,根结点除外!!!)
第一个子树:结点 2,5,6
第二个子树:结点3
第三个子树:结点4,7,8,9
基本概念
- (1)树是递归定义的
- (2)一个结点的子树个数称为这个结点的度。还是那张图,结点1的度数就是3,结点3的度数就是0
- (3)度数为0的结点叫叶结点,度数不为0的结点叫分支结点,根以外的分支结点又叫内部结点
- (4)一个树,各个结点的度的最大值就是这个树的度。刚刚那张图中,树的度就是3,因为根结点的度最大,为3
- (5)在一个树中,上端结点叫做下端结点的父结点,下端结点叫上端结点的子结点。
- (6)同一个父结点的多个子结点叫做兄弟结点
- (7)从根结点到某个子结点所经过的结点称为这个子结点的祖先
- (8)对于树中任意两个结点,如果从一个结点出发,沿着整个树自上而下能够达到另一个结点,称它们之间存在一条路径。路径长度=路径中包含的结点数-1
- (9)从根结点出发,到树中其余结点,一定存在一条路径
- (10)一个树中,不同子树之间不存在路径
- (11)一个森林(forest): m棵(m>=0)互不相交的树的集合
- (12)层次:定义根结点的层次为0,其余结点的层次等于它的父结点的层次+1。比如,上面的图中,结点8的层次为3
- (12)深度:一棵树中,所有结点的层次的最大值称为这个树的深度(depth)。比如,上图中,树的深度为3