图论学习笔记(三) 树

前言:参考教材:《集合论与图论》第三版 屈婉玲,刘捍贫,刘田

第九章 树

9.1 无向树的定义及性质

无向树:连通且无回路(简单/初级)的无向图称为无向树,记为T;若无向图G中至少有两个连通分支且每个连通分支都是树,则称F为森林,平凡图称为平凡树

树叶/分支点:T=为一颗无向树,若d(v)=1,则称为一个树叶;若d(v)≥2,则称为一个分支点。(如果n≥2,则树中的顶点要么是树叶,要么是分支点;但是n=1的时候平凡图中仅有的一个顶点既不是树叶也不是分支点)

Theorem:G为n阶m边的无向图,则以下命题等价:(1)G是树(2)G中任意两个顶点之间存在唯一一条路径(3)G中没有圈,且m=n-1(4)G连通,且m=n-1(5)G连通,且G中任何边均为桥(6)G中没有圈,但在任意两个顶点(u,v)之间增添一条边,就会得到唯一一个圈

Theorem:T阶非平凡无向树至少有两片树叶

星状图:称一个节点带着(n-1)片树叶构成的n阶无向树为n阶星状图,分支点成为星心,记为S_n

Algorithm:不同构的n阶无向树的数量:t_n,使用化学中计算同分异构体的讨论直径法进行计算

9.2 生成树

生成树/余树:设T为无向图G的子图且为树,则称T为G的树。若T为G的生成子图并且为树,则称T为G的生成树。对于任意的边e∈E(G),若e∈E(T),则称e为T的树枝,否则称e为T的弦,并且称G[E(G)-E(T)]为T的余树,记为上划线(T)注:一个图的余树显然可能不是其生成子图(顶点数量可能减少,因为导出子图的定义是和这些边关联的所有顶点构成的图)

Theorem:无向图G具有生成树当且仅当无向图G是连通的

Corollary:T的余树上划线(T)中含有m-n+1条边;G中的任意一个圈的边集和余树的边集的交必定不是空集

基本回路/基本圈/基本回路系统:T为n阶m条边的无向连通图的一棵生成树,其余树的边集为{e_1,e_2,…,e_m-n+1},则将e_i填入树上后得到的唯一一个圈C_i成为G对应T的弦e_i的基本回路/基本圈,并称{C_1,…,C_m-n+1}为G对应T的基本回路系统;m-n+1为G的圈秩,记为ξ(G)

Theorem:设T为连通图G的一棵生成树,e为T的一条树枝,则G中存在仅含树枝e,其余元素均为弦的割集;不同的树枝对应的割集不同

基本割集/基本割集系统:设T为n阶连通图G的一棵生成树,e_1,e_2,…,e_(n-1)为T的树枝,S_i称为对应T的由树枝e_i产生的基本割集;称{S_1,S_2,…,S_n}为对应T的基本割集系统,称n-1为G的割集秩,记为η(G)

生成树的个数:G的两棵生成树T_1和T_2不同,若E(T_1)≠E(T_2),并且在此下记G的生成树个数为τ(G)

Theorem:G=w为n阶无向连通标定图,则对G的任意非环边,则τ(G)=τ(G-e)+τ(G\e)

Theorem:(完全图的生成树个数)τ(K_n)=n^(n-2)

Algorithm:考虑一个映射:每次求出当前图的编号最小的树叶连接的节点的编号,然后把这条边去掉,取n-2次,得到数组(i_1,i_2,…,i(n-2)),则唯一对应一个K_n的生成树;反之,一个序列可以唯一构造一个生成树:先把i_1和k_1=min{V-{i_1,i_2,…,i(n-2)}}连起来,然后把i_2和k_2=min{V-{k_1}-{i_2,…,i_(n-2)}}连起来,以此类推

注:以上算法对于非简单图也同样适用,但是要注意一下可能出现环,这时候直接去掉就行了(树里面必不可能有环)

Application:求一个完全图K_m的生成树对应的序列和一个序列对应的生成树

9.3/4 环路空间/断集

图空间:设无向标定图G=,V={v_1,…,v_n},E={e_1,…,e_m},则这些边一共有2m个不相同的子集,将其构成的边导出子图记为Ω={G_1,G_2,…,G_(2m)},并记M={G[e_1],…,G[e_m]}定义为{g_1,g_2,…,g_m},则Ω对于环和运算及数乘运算构成F={0,1}上的m维线性空间,M为其生成元集

环路:无向图G中圈或若干个边不重的圈的并称为环路,规定∅为环路

Theorem:对于树的弦e_i1,…,e_ik,其所在的圈为C_i1,…,C_ik,则环和C_i1⊕…⊕C_ik中包含e_i1,…e_ik

Theorem:无向图G中任意两个回路C_1,C_2的环和为环路;任意两个环路的环和为环路

Theorem:设G为无向连通图,T为G中的一棵生成树,则G中的任意一个环路均可以表示为T的若干个基本回路的环和

Corollary1:设G中有s个简单回路,则m-n+1≤s≤2^(m-n+1)

Corollary2:G中的环路个数s=2^(m-n+1)

Corollary3:G中的所有环路组成的集合C_环是Ω的(m-n+1)维子空间

断集:G=为无向图,V_1是V的非空真子集,记上划线(V_1)=V-V_1,记E(V_1×上划线(V_1))={(u,v)|(u,v)∈E(G),u∈V_1,v∈上划线(V_1)}为G中的一个断集

Corollary:割集是断集,但断集不一定是割集

Theorem:基本割集系统通过对称差运算构成割集系统的一组基

9.5 根树

有向树:如果有向图D的基图是无向树,则称D为有向树

根树/树根/树叶/内点/分支节点/层数/树高:若有向树T中某一个顶点的入度为0,其余顶点的入度均为1,则称为根树,入度为0的节点称为树根;入度为1出度为0的节点称为树叶;入度为1出度不为0的节点称为内点;内点和树根统称为分支节点,从树根到T的任意顶点v的通路长度称为v的层数,层数的最大值称为树高

祖先/后代/父亲/儿子/兄弟:设T为一颗根树,若v_i可达v_j,则称v_i是v_j的祖先,v_j是v_i的后代,若v_i邻接到v_j,则称v_i是v_j的父亲,v_j是v_i的儿子,若v_j和v_k的父亲相同,则称其是兄弟

有序树:根树T的层数相同的节点都标定了次序

一些特殊的根树

r叉树:每个分支点至多r个儿子

r叉正则树:每个分支点恰好有r个儿子

r叉完全正则树:每个树叶的层数均为树高的r叉正则树

r叉有序树:若T既是r叉树又是有序树

r叉正则有序树:若T既是r叉正则树又是有序树

r叉完全正则有序树:若T既是r叉完全正则树又是有序树

根子树:根树T的节点v及其后代的导出子图

左子树/右子树:2叉正则有序树的每个分支点的两个儿子导出的根子树分别称为该分支点的左子树和右子树

周游/行遍:对一棵根树的每个节点都恰好访问一次;从而得到三种遍历方法:中序/前序/后序行遍法

前/中/后缀符号法:对表达式树进行前/中/后序行遍,其中后序行遍法也称为逆波兰表达式

习题类型

1.画出所有满足特定性质的非同构树(eg:7阶/3个3度顶点,4个4度顶点)(使用同分异构体画法,按照直径讨论,但注意没有一个节点度数至多为4的限制了

2.使用握手定理和特殊关系求出n和m(/层数)的一些关系

3.求某个生成树的基本回路系统和基本断集系统

4.画出所有满足特定性质的非同构根树(eg:所有的6阶根树)(方法:先画出所有不同构的无向树,再以之为基础画出所有不同构的根树

你可能感兴趣的:(图书阅读,学习笔记,图论,树结构)