Logo

树(离散数学)

树(离散数学)

1.无向树及其性质

定义7.1.1 无向树及相关概念

设图G=(V,E)G=(V,E)为无向图:

  1. 无向树(树)
    连通且不含回路的无向图
  2. 森林
    各连通分支都是树的无向图
  3. 平凡树
    仅含单个顶点的平凡图
  4. 树叶
    无向树中度为1的悬挂顶点
  5. 分支点
    无向树中度数2\geq 2的顶点

特别说明

  • 定义中的"回路"特指初级回路(简单回路)
  • 本章后续讨论默认遵循此回路定义

定理7.1.1 树等价命题

G=V,EG=\langle V,E \ranglennmm边无向图,下列命题等价:

  1. 树定义GG是树
  2. 唯一路径性GG中任意两顶点存在唯一路径
  3. 无圈边数条件GG无回路且m=n1m = n - 1
  4. 连通边数条件GG连通且m=n1m = n - 1
  5. 全桥连通性GG连通且所有边均为桥
  6. 加边成圈性
    • GG不含回路
    • 任意两不同顶点间添加新边后,存在唯一含新边的圈

定理7.1.2 树叶存在定理

对任意nn阶非平凡无向树TTn2n \geq 2),必满足:

树叶数2\text{树叶数} \geq 2

等价关系可视化

2.生成树

7.2.1 核心定义

  1. 生成树(定义7.2.1)
    • 设无向图 GG 的生成子图 TT 是树,则称 TTGG 的生成树。
    树枝GG 中属于 TT 的边。
    GG 中不属于 TT 的边。
    余树:由所有弦构成的导出子图,记作 T\overline{T}

7.2.2 生成树的存在性与性质

  1. 定理7.2.1
    • 无向图 GG 存在生成树的充要条件是 GG 为连通图。

  2. 推论7.2.1
    • 设 GGnnmm 条边的无向连通图,则 mn1m \geq n-1


7.2.3 基本回路系统

  1. 定义7.2.2
    • 设 TTnnmm 边连通图 GG 的生成树,其弦数为 mn+1m-n+1
    • 对每条弦 ere_r,由 TT 添加 ere_r 形成的唯一圈 CrC_r 称为 基本回路
    • 所有基本回路组成的集合 {C1,C2,,Cmn+1}\{ C_1, C_2, \dots, C_{m-n+1} \} 称为 GG基本回路系统
    圈秩ξ(G)=mn+1\xi(G) = m - n + 1,表示图的回路复杂度。

  2. 广义回路空间
    广义回路:圈或边不重的圈的并(包括空集)。
    • 全体广义回路 CC^* 在环和运算与数乘 (0C=,1C=C)(0 \cdot C = \varnothing, 1 \cdot C = C) 下构成 F2F_2 上的 ξ(G)\xi(G) 维线性空间。
    :任一基本回路系统均为其基。


7.2.4 基本割集系统

  1. 定理7.2.3
    • 设 TT 是连通图 GG 的生成树,ee 为树枝,则存在仅含 ee 和若干弦的 唯一割集

  2. 定义7.2.3
    • 设 TTnn 阶连通图 GG 的生成树,树枝为 e1,e2,,en1e_1, e_2, \dots, e_{n-1}
    • 每个树枝 eie_i 与弦构成的割集 SiS_i 称为 基本割集
    • 所有基本割集组成的集合 {S1,S2,,Sn1}\{ S_1, S_2, \dots, S_{n-1} \} 称为 基本割集系统
    割集秩η(G)=n1\eta(G) = n-1,表示图的割集复杂度。

  3. 广义割集空间
    广义割集:非空顶点子集补集间的边集(包括空集)。
    • 全体广义割集 SS^* 在对称差运算与数乘 (0S=,1S=S)(0 \cdot S = \varnothing, 1 \cdot S = S) 下构成 F2F_2 上的 η(G)\eta(G) 维线性空间。
    :任一基本割集系统均为其基。


7.2.5 最小生成树与算法

  1. 定义7.2.4
    • 设无向连通带权图 G=(V,E,W)G = (V, E, W),生成树 TT 的权为各边权之和 W(T)W(T)
    最小生成树:权最小的生成树。

  2. Kruskal算法(避圈法)
    输入nn 阶无环连通带权图 GG,边集 E={e1,e2,,em}E = \{ e_1, e_2, \dots, e_m \}(按权升序排列)。
    步骤

    1. 初始化 T=T = \varnothing
    2. 依次检查每条边 eje_j
      ▪ 若 eje_j 加入 TT 后不形成回路,则加入 TT
      ▪ 否则舍弃 eje_j
    3. TTn1n-1 条边时停止,输出最小生成树 TT

关键总结

  1. 生成树与连通性:生成树存在等价于图连通,且边数下限为 n1n-1
  2. 对偶结构
    • 回路系统(圈秩 ξ(G)=mn+1\xi(G) = m - n + 1
    • 割集系统(割集秩 η(G)=n1\eta(G) = n - 1
  3. 线性空间
    • 广义回路空间(维数 ξ(G)\xi(G)
    • 广义割集空间(维数 η(G)\eta(G)
  4. 最小生成树算法:Kruskal算法通过贪心选择避免回路,逐步构造最优解。

3 根树及其应用

7.3.1 根树基本定义

定义7.3.1
设图GG为有向图:

  • 有向树:基图为无向树的有向图
  • 根树:存在唯一入度为0的顶点(树根),其余顶点入度均为1的有向树
  • 顶点分类
    • 树根:入度为0的顶点
    • 树叶:入度为1且出度为0的顶点
    • 内点:入度为1且出度不为0的顶点
    • 分支点:树根与内点的统称
  • 层数与树高
    • vv的层数:树根到vv的路径边数
    • 树高:所有顶点的最大层数

7.3.2 根树关系与分类

定义7.3.2
TT为根树:

  • 亲属关系
    • 祖先/后代:顶点间存在可达路径的纵向关系
    • 父/子:直接邻接的顶点间关系
    • 兄弟:同一父节点的子节点
  • 有序树:对同层顶点指定顺序的根树
  • 分类体系
类型特征有序性
rr叉树分支点最多有rr个儿子可有序
rr叉正则树分支点恰有rr个儿子可有序
rr叉完全正则树rr叉正则且所有树叶同高可有序

定义7.3.3

  • 根子树:以任意顶点vv及其后代构成的子树
  • 二叉正则有序树
    • 左子树:分支点第一个儿子导出的子树
    • 右子树:分支点第二个儿子导出的子树

7.3.3 最优二叉树

定义7.3.4
设二叉树TTtt片树叶v1,,vtv_1,\dots,v_t,权值为w1,,wtw_1,\dots,w_t

  • 权计算公式 W(T)=i=1twil(vi)W(T) = \sum_{i=1}^t w_i \cdot l(v_i) 其中l(vi)l(v_i)viv_i的层数
  • 最优二叉树:在相同权值集合中,权值W(T)W(T)最小的二叉树

7.3.4 霍夫曼算法

算法步骤

  1. 初始化:创建tt片树叶,权值为w1,,wtw_1,\dots,w_t
  2. 迭代合并
    • 选择权最小的两个入度为0顶点
    • 创建新分支点,权为子节点权之和
  3. 终止条件:只剩1个入度为0顶点(树根)
  4. 权值特性W(T)W(T)等于所有分支点权之和

7.3.5 前缀码

定义7.3.5

  • 前缀:符号串α1α2αn\alpha_1\alpha_2\cdots\alpha_n的子串α1, α1α2, , α1αn1\alpha_1,\ \alpha_1\alpha_2,\ \dots,\ \alpha_1\cdots\alpha_{n-1}
  • 前缀码:符号串集合AA中任意两元素互不为前缀
  • 二元前缀码:由0/1符号串构成的前缀码

7.3.6 二叉正则树应用示例

算式表示
表达式(a(b+c)+def)÷(g+(hi)j)(a*(b+c)+d*e*f)\div(g+(h-i)*j)的二叉树表示:

         ÷
       /   \
      ◦     +
     / \   / \
    ◦   * g   *
   / \  |    / \
  a  +  d   -   j
    / \     / \
   b c     h i

行遍法结果

遍历法结果表达式
中序((a(b+c))+(d(ef)))÷(g+((hi)j))((a*(b + c)) + (d*(e*f))) \div (g + ((h - i)*j))
前序÷(+(a+bc),+(def),g+(hi)j)\div(+\star(a+bc), +\star(d\star ef), g+\star(-hi)j)
后序(a(bc+)(d(ef))+)(g(hi)j)+÷(a(bc+)\star (d(ef\star)\star)+) (g(hi-)\star j\star)+ \div

符号说明

  • \star表示乘法运算
  • 括号标记运算优先级
  • 遍历结果需配合运算符优先级规则解析

© 2025 All rights reservedBuilt with Flowershow Cloud

Built with LogoFlowershow Cloud