无向树

定义

无向树:连通无回路的无向图,记作 T。平凡树是平凡图。森林是至少由两个连通分支(每个都是树)组成的图。树叶是度数为 1的顶点,分支点是度数 的顶点。

等价定义与性质

定理:设 是 n 阶 m 条边的无向图,以下命题等价:

  1. G 是树。
  2. G 中任意两个顶点之间存在唯一的路径。
  3. G 中无回路且
  4. G 是连通的且
  5. G 是连通的且 G 中任何边均为桥。
  6. G 中没有回路,但在任何两个不同的顶点之间加一条新边,所得图中得到唯一的一个含新边的圈。

定理:T 是 n 阶非平凡的无向树,则 T 中至少有两片树叶。

推论:具有 k 个分支的森林有 n-k 条边。

定理:设正整数序列 ,则存在一棵树 T其度序列为该序列。

中心与形心

中心

  • 离心率:一个顶点到其他顶点距离的最大值。
  • 半径:最小离心率。
  • 直径:最大离心率。
  • 中心点:离心率等于半径的点。
  • 中心:中心点的集合。

定理:每棵树的中心由一个点或两个相邻点组成。

形心

  • :一个顶点的分支中边的最大数目。
  • 形心点:权最小的点。
  • 形心:全体形心点的集合。

定理:每一棵树有一个由一个点或两个邻接的点组成的形心。

生成树

定义

设 G 为无向图:

  • G 的树:T 是 G 的子图且是树。
  • G 的生成树:T 是 G 的生成子图且是树。
  • 树枝:生成树 T 中的边。
  • :不在生成树 T 中的边。
  • 余树:全体弦组成的集合的导出子图(不一定连通,也不一定不含回路)。

定理:无向图 G 具有生成树当且仅当 G 连通。

推论:G为 n阶 m条边的无向连通图,则 。余树的边数为

生成树的计数

Cayley 定理:设 e 是 G 的一条边,G 的生成树中包含边 e 的棵数为 ,不包含 e 的棵数为

矩阵树定理:设 G 的顶点集为 为邻接矩阵, 为 n 阶方阵,则 G 的生成树棵数为 C 的任意一个余子式的值。

基本回路与基本割集

基本回路

设 T是连通图 G的一棵生成树,e为 T的任意一条弦,则 中含一个具有一条弦其余边均为 T的树枝的圈。不同的弦对应的圈不同。

基本回路:由生成树 T 添加弦 产生的只含弦 、其余边均为树枝的圈,记作

基本回路系统

圈秩

注意:基本回路是回路,即路径的表示。

基本割集

设 T 是连通图 G 的一棵生成树,e 为 T 的树枝,则 G 中存在只含树枝 e、其余边都是弦的割集。

基本割集:由生成树 T 的树枝 生成的只含树枝 的割集,记作

基本割集系统

割集秩

算法:设 e为生成树 T的树枝,为两棵小树 ,令 的两个端点分别属于 ,则 为 e对应的基本割集。

注意:基本割集是割集,即集合的表示。

最小生成树

定义

T 是 的生成树,其权 为 T 各边权之和。最小生成树是 G 的所有生成树中权最小的。

Kruskal 算法(避圈法)

将 G 中非环边按权从小到大排序:

  1. 取 e₁ 在 T 中。
  2. 检查 ,若与 T 中已有边不构成回路则加入,否则弃去。
  3. 重复直到得到生成树。

Prim 算法

对于连通赋权图 G 的任意一个顶点 u,选择与 u 关联的权值最小的边作为第一条边 e₁。后续每次在与已选取边只有一个公共端点的所有边中,选取权值最小的边。

破圈法

从赋权图 G 的任意圈开始,去掉该圈中权值最大的一条边,不断破圈,直到 G 中没有圈为止,最后剩下的子图为最小生成树。

根树

定义

T 是有向树(基图为无向树):

  • 根树:T 中一个顶点入度为 0,其余入度均为 1。
  • 树根:入度为 0 的顶点。
  • 树叶:入度为 1,出度为 0 的顶点。
  • 内点:入度为 1,出度不为 0 的顶点。
  • 分支点:树根与内点的总称。
  • 层数:从树根到该顶点的通路长度。
  • 树高:树中层数最大的顶点的层数。

家族树

在根树中可定义祖先、后代、父亲、儿子、兄弟等关系。顶点 v 及其后代的导出子图称为以 v 为根的根子树

分类

  • 有序树:同层上顶点标定次序。
  • r 叉树:每个分支点至多有 r 个儿子。
  • r 叉有序树:树是有序的 r 叉树。
  • r 叉正则树:每个分支点恰有 r 个儿子。
  • r 叉完全正则树:树叶层数相同的 r 叉正则树。

最优二叉树(哈夫曼树)

定义:设 2叉树 T有 t片树叶,权分别为 ,称 为 T的权(的层数)。在所有有 t片树叶、带权 的 2叉树中,权最小的称为最优 2叉树

哈夫曼算法

  1. 连接权为 的两片树叶,得分支点,其权为
  2. 在 w₁+w₂, w₃, …, wₜ 中选出两个最小的权,连接对应顶点,得新分支点及所带的权。
  3. 重复直到形成 t-1 个分支点、t 片树叶。

最佳前缀码

  • 前缀:符号串的前面部分。
  • 前缀码:集合中任何两个元素互不为前缀。
  • 一棵 2 叉树产生一个二元前缀码。

波兰符号法与逆波兰符号法

对 2 叉有序正则树的周游方式:

  • 中序行遍法:左子树、根、右子树。
  • 前序行遍法(波兰符号法/前缀符号法):根、左子树、右子树。每个运算符与其后面紧邻两个数进行运算。
  • 后序行遍法(逆波兰符号法/后缀符号法):左子树、右子树、根。每个运算符与前面紧邻两数运算。

链接到