1369 字
7 分钟
图论算法其一:树的基本概念

1.自由树#

连通的、无环的无向图。

自由树G=(V,E)G=(V,E)有以下性质:

  • GG是一个无向图

  • GG中任何两顶点由唯一简单路径相连

  • GG是连通的,但是从图中移除任意一条边得到的图均不相连

  • GG是连通的,且E=V1\lvert E\rvert = \lvert V\rvert-1

  • GG是无环的,且E=V1\lvert E\rvert=\lvert V\rvert-1

  • GG是无环的,但是如果向EE中添加任何一条边,均会造成图包含一个环

2.森林#

一个及以上自由树组成的集合。

可能不连通的、无环的无向图。

3.有根树#

3.1.定义#

有根树是一棵自由树,其顶点中存在一个与其他顶点不同的节点,称该顶点为树的根。

一棵有根树中的任意一个顶点均可以作为这棵树的根。

若无特殊说明,我们通常说的有根树

3.2.常用概念#

1 祖先、后代#

从一棵树TT的根节点rr到任意节点xx的唯一简单路径上的任意节点yy称为节点xx祖先,反之,如果yyxx的祖先,则xxyy后代

显然,一个节点与自身互为祖先和后代。

如果xxyy的后代,且xyx\ne y,则称xxyy真后代yyxx真祖先

2 父节点、子节点、兄弟节点#

设从一棵树TT的根节点rr到任意节点xx的唯一简单路径上最后一条边是(y,x)(y,x),则yyxx父节点,也叫双亲xxyy子节点,也叫孩子,如果两个节点有相同的父节点,则它们是兄弟节点

根是树中唯一没有父节点的节点。

3 叶子节点,内部节点#

一个没有子节点的节点称为叶子节点,非叶子节点为内部节点

4 度#

有根树TT中一个节点xx的子节点数目为xx

NOTE

与图/自由树不同,有根树中除根节点外均有且只有一条连向父节点的边,故有根树中的度仅考虑连向子节点的边,而不是所有边

显然,叶子节点就是度为00的节点。

5 深度、高度、层#

有根树TT中从根节点rr到节点xx的一条简单路径长度即为xx深度,从xx到叶子节点的最长简单路径上边的数目即为xx高度,树的一个包含了同一深度的所有节点。树的高度是指树中节点的最大深度

根节点的深度为00,叶子节点的高度为00

6 子树#

由有根树TT中一个节点xx的所有后代构成的节点称为以xx为根的子树

3.3.有序树#

每个节点的子节点都是有序的有根树

4.二叉树#

4.1.定义#

二叉树TT是定义在有限节点集上的结构,它或者不包含任何节点,或者包含三个不相交的节点集合:一个根节点,一棵称为左子树的二叉树,一棵称为右子树的二叉树。

4.2.常用概念#

1.左孩子、右孩子#

若一个节点左子树非空,则左子树的根为该节点的左孩子,若一个节点右子树非空,则右子树的根为该节点的右孩子

二叉树不仅仅是度不超过22的有序树的,对于只有一个孩子的节点,区分左孩子和右孩子是必要的。

2.真二叉树#

除叶子节点外的节点度均为22的二叉树。

3.满二叉树#

所有叶子节点深度相同,且所有内部节点度为22的二叉树。

IMPORTANT

满二叉树(Full Binary Tree)国内外定义存在不同,国外说的满二叉树一般指国内说的真二叉树。

4.完全二叉树#

除最后一层,每一层节点数均达到最大值的二叉树。

5.位置树#

在一棵位置树中,节点的孩子被标记为不同的正整数,不同于有序树,如果没有孩子被标记为整数ii,则该节点的第ii个孩子缺失。

6.kk叉树#

若对于位置树的每个节点,所有标记大于kk的孩子均缺失,则称这棵树为**kk叉树**。

二叉树是k=2k=2kk叉树。

同理可推出真kk叉树、满kk叉树和完全kk叉树的定义。

4.3.二叉树的性质#

  • 在二叉树的第ii层上至多有2i12^{i-1}个节点
  • 深度为kk的二叉树至多有2k12^k-1个节点(满二叉树)
  • 对于任意一棵二叉树,若叶子数为n0n_0,度为22的节点数为n2n_2,则n0=n2+1n_0=n_2+1
  • 具有nn个节点的完全二叉树深度必为log2n+1\lfloor \log_2n\rfloor+1
  • 对于完全二叉树,若从上至下,从左至右编号,则编号为ii的节点,其左孩子编号必为2i2i,右孩子编号必为2i+12i+1,双亲编号必为i/2i/2

5.不同树之间的转换#

选取一个根节点,可以将任意自由树转换为有根树。

创建一个根节点,将其与多个有根树的根节点相连,可以将森林转换为有根树。

将长子作为左子节点,兄弟作为右子节点,可以将任何一棵树转换为二叉树,如图所示:

转换为:

图论算法其一:树的基本概念
https://ssl.ztsubaki.xyz/posts/6/6/
作者
ZTsubaki
发布于
2025-01-19
许可协议
CC BY-SA 4.0