要么健身,要么读书,身体和灵魂总有一个要在路上!
此篇符号全手撸,各位观众老爷看得开心点个赞鸭~
一、图的基本概念
【定义】一个图表示为 G \ G G=< V \ V V( G \ G G), E \ E E( G \ G G)>,其中
V \ V V( G \ G G):是 G \ G G的顶点的非空集合,简记成 V \ V V。
E \ E E( G \ G G):是 G \ G G的边的集合,简记成 E \ E E。
结点(Vertices):用о表示,旁边标上该结点的名称。
边(Edges)
有向边:带箭头的弧线。
从 u \ u u到 v \ v v的边表示成< u \ u u, v \ v v>
无向边:不带箭头的弧线
u \ u u和 v \ v v间的边表示成( u \ u u, v \ v v)
实例
1.设 V 1 \ V_1 V1={ v 1 \ v_1 v1, v 2 \ v_2 v2,… v 5 \ v_5 v5},
E 1 \ E_1 E1={( v 1 \ v_1 v1, v 1 \ v_1 v1),( v 1 \ v_1 v1, v 2 \ v_2 v2),( v 2 \ v_2 v2, v 3 \ v_3 v3),( v 2 \ v_2 v2, v 3 \ v_3 v3),( v 2 \ v_2 v2, v 5 \ v_5 v5),( v 1 \ v_1 v1, v 5 \ v_5 v5),( v 4 \ v_4 v4, v 5 \ v_5 v5)}
则 G 1 \ G_1 G1=< V 1 \ V_1 V1, E 1 \ E_1 E1>为一无向图
2.设 V 2 \ V_2 V2={ a \ a a, b \ b b, c \ c c, d \ d d},
E 2 \ E_2 E2={< a \ a a, a \ a a>,< a \ a a, b \ b b>,< a \ a a, b \ b b>,< c \ c c, b \ b b>,< c \ c c, d \ d d>,< d \ d d, c \ c c>,< a \ a a, d \ d d>}
则 G 2 \ G_2 G2=< V 2 \ V_2 V2, E 2 \ E_2 E2>为一有向图
相关概念
1.图 ①可用 G \ G G泛指图 (无向的 G \ G G或有向的 D \ D D)
② V \ V V( G \ G G), E \ E E( G \ G G), V \ V V( D \ D D), E \ E E( D \ D D)
③ n \ n n阶图 ( n \ n n为顶点个数)
2.孤立点、 n \ n n阶零图、平凡图 (只有一个结点)
3.用 e k \ e_k ek表示无向边或有向边
4.顶点与边的关联关系
①关联、关联次数 ②环
5.顶点之间的相邻与邻接关系
6.多重图与简单图
简单图:不含有环和平行边的图。
多重图:含有平行边的图。(通常环也看看作平行边)
二、顶点的度
1.设 G \ G G=< V \ V V, E \ E E>为无向图, ∀ \forall ∀ v \ v v ∈ \in ∈ V \ V V, d \ d d( v \ v v)—— v \ v v的度数,简称度。
2.设 D \ D D=< V \ V V, E \ E E>为有向图, ∀ \forall ∀ v \ v v ∈ \in ∈ V \ V V,
d + \ d^+ d+( v \ v v)—— v \ v v的出度
d − \ d^- d−( v \ v v)—— v \ v v的入度
d \ d d( v \ v v)—— v \ v v的度或度数(入度+出度)
3.最大度 Δ \Delta Δ( G \ G G),最小度 δ \delta δ( G \ G G)
4. Δ + \Delta^+ Δ+( D \ D D), δ + \delta^+ δ+( D \ D D), Δ − \Delta^- Δ−( D \ D D), δ − \delta^- δ−( D \ D D), Δ \Delta Δ( D \ D D), δ \delta δ( D \ D D)
5.奇度顶点与偶度顶点(度数为奇或偶的顶点)
4.握手定理
【定理1-1】设 G \ G G=< V \ V V, E \ E E>为无向图, V \ V V={ v 1 \ v_1 v1, v 2 \ v_2 v2,… v n \ v_n vn}, ∣ \lvert ∣ E \ E E ∣ \rvert ∣=m,则
∑ i = 1 n d ( v i ) = 2 m \sum\limits_{i=1}^{n}d(v_i)=2m i=1∑nd(vi)=2m
证明: G \ G G中每条边(包括环)均有两个端点,所以在计算 G \ G G中各顶点度数之和时,每条边均提供2度, m \ m m条边共提供2 m \ m m度。
【定理1-2】设 D \ D D=< V \ V V, E \ E E>为有向图, V \ V V={ v 1 \ v_1 v1, v 2 \ v_2 v2,… v n \ v_n vn}, ∣ \lvert ∣ E \ E E ∣ \rvert ∣= m \ m m,则
∑ i = 1 n d ( v i ) = 2 m , 且 ∑ i = 1 n d + ( v i ) = ∑ i = 1 n d − ( v i ) = m \sum\limits_{i=1}^{n}d(v_i)=2m, 且 \sum\limits_{i=1}^{n}d^+(v_i)=\sum\limits_{i=1}^{n}d^-(v_i)=m i=1∑nd(vi)=2m,且i=1∑nd+(vi)=i=1∑nd−(vi)=m
【推论】任何图(无向或有向)中,奇度顶点的个数是偶数。
5.无向图的结点度序列
V \ V V={ v 1 \ v_1 v1, v 2 \ v_2 v2,… v n \ v_n vn}为无向图 G \ G G的顶点集,称 d \ d d( v 1 \ v_1 v1), d \ d d( v 2 \ v_2 v2),… d \ d d( v n \ v_n vn)为 G \ G G的度数序列。
非负整数列 d \ d d=( d 1 \ d_1 d1, d 2 \ d_2 d2,… d n \ d_n dn)是可图化的,是可简单图化的。
[ n \ n n阶 k \ k k正则图 ] 一个无向简单图 G \ G G中,如果 Δ \Delta Δ( G \ G G)= δ \delta δ( G \ G G)= k \ k k,则称 G \ G G
为 k \ k k-正则图。
练习:
已知无向简单图 G \ G G中,有10条边,4个3度顶点,其余结点的度均小于或等于2,问 G \ G G中至少有多少个顶点?
解:利用握手定理可知,顶点的总度数等于边的2倍,则度数一共为20,已知4个3度顶点,则还剩8度,其余结点的度均小于等于2,则当顶点度数都为2时顶点最少,8/2=4,则 G \ G G中至少有4+4=8个顶点。
三、图的同构
【图的同构】设 G 1 \ G_1 G1=< V 1 \ V_1 V1, E 1 \ E_1 E1>, G 2 \ G_2 G2=< V 2 \ V_2 V2, E 2 \ E_2 E2>为两个无向图(或两个有向图),若存在双射函数 f \ f f: V 1 \ V_1 V1→ V 2 \ V_2 V2,对于 v i \ v_i vi, v j \ v_j vj ∈ \in ∈ V 1 \ V_1 V1,
( v i \ v_i vi, v j \ v_j vj) ∈ \in ∈ E 1 \ E_1 E1当且仅当( f \ f f( v i \ v_i vi), f \ f f( v j \ v_j vj)) ∈ \in ∈ E 2 \ E_2 E2
(< v i \ v_i vi, v j \ v_j vj> ∈ \in ∈ E 1 \ E_1 E1当且仅当< f \ f f( v i \ v_i vi), f \ f f( v j \ v_j vj)> ∈ \in ∈ E 2 \ E_2 E2)
并且,( v i \ v_i vi, v j \ v_j vj) (< v i \ v_i vi, v j \ v_j vj>)与( f \ f f( v i \ v_i vi), f \ f f( v j \ v_j vj)) (< f \ f f( v i \ v_i vi), f \ f f( v j \ v_j vj)>)的重数相同,则称 G 1 \ G_1 G1与 G 2 \ G_2 G2是同构的,记作 G 1 \ G_1 G1 ∼ = \sim= ∼= G 2 \ G_2 G2。
能找到同构的必要条件,但它们全不是充分条件:
①边数相同 ②顶点数相同 ③度数相同的顶点数相同
④度数序列相同,等等。
实例:
图中(1)与(2)不同构(度数序列不同),(3)与(4)也不同构。
四、完全图
【无向完全图】 G \ G G是个简单图,如果每对不同顶点都有边,则称 G \ G G是个无向完全图。如果 G \ G G有 n \ n n个结点,则记作 K n \ K_n Kn。
简单性质:边数 m \ m m= n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1), Δ \Delta Δ= δ \delta δ= n \ n n-1
【有向完全图】 G \ G G是个有向简单图,如果任意两个不同顶点之间都有方向相反的边,则称它是有向完全图。
简单性质:边数 m \ m m= n \ n n( n \ n n-1), Δ \Delta Δ= δ \delta δ=2( n \ n n-1), Δ + \Delta^+ Δ+= δ + \delta^+ δ+= n \ n n-1
【竞赛图】
基图为 K n \ K_n Kn的有向简单图(去掉方向就是无向完全图)
五、子图
【定义】 G \ G G=< V \ V V, E \ E E>, G ′ \ G' G′=< V ′ \ V' V′, E ′ \ E' E′>
(1) G ′ \ G' G′ ⊆ \subseteq ⊆ G \ G G —— G ′ \ G' G′为 G \ G G的子图, G \ G G为 G ′ \ G' G′的母图
(2) 若 G ′ \ G' G′ ⊆ \subseteq ⊆ G \ G G且 V ′ \ V' V′= V \ V V,则称 G ′ \ G' G′为 G \ G G的生成子图
(2) 若 V ′ \ V' V′ ⊂ \subset ⊂ V \ V V或 E ′ \ E' E′ ⊂ \subset ⊂ E \ E E,则称 G ′ \ G' G′为 G \ G G的真子图
图中, G 1 \ G_1 G1, G 2 \ G_2 G2, G 3 \ G_3 G3都是 K 5 \ K_5 K5的子图,其中 G 1 \ G_1 G1是 K 5 \ K_5 K5的生成子图, G 2 \ G_2 G2, G 3 \ G_3 G3都是 K 5 \ K_5 K5的真子图。
六、补图
【定义】设 G \ G G=< V \ V V, E \ E E>为 n \ n n阶无向简单图,以 V \ V V为顶点集,以所有使 G \ G G成为完全图 K n \ K_n Kn的添加的边组成边集的图,成为 G \ G G的补图,记作 G \ G G上一"一" o(╥﹏╥)o
若 G \ G G ∼ = \sim= ∼= G \ G G上一"一",则称 G \ G G是自补图。
互为自补图的两个图的边数相等(自补图是同构的,图是同构的,按照同构的概念,它的边数是相同的)
一、通路与回路
【定义】给定图 G \ G G=< V \ V V, E \ E E>(无向或有向的), G \ G G中顶点与边的交替序列 Γ \Gamma Γ= v 0 e 1 v 1 e 2 . . . e l v l \ v_0e_1v_1e_2...e_lv_l v0e1v1e2...elvl是连接 v 0 \ v_0 v0到 v l \ v_l vl的通路,其中 v i − 1 \ v_{i-1} vi−1和 v i \ v_i vi是 e i \ e_i ei的端点。
(1)通路与回路: Γ \Gamma Γ为通路;若 v 0 \ v_0 v0= v l \ v_l vl, Γ \Gamma Γ为回路, l \ l l为回路长度。
(2)简单通路与回路: 所有边都不相同, Γ \Gamma Γ为简单通路,又若 v 0 \ v_0 v0= v l \ v_l vl, Γ \Gamma Γ为简单回路。
(3)初级通路(路径)与初级回路(圈): Γ \Gamma Γ中所有顶点都不相同,则称 Γ \Gamma Γ为初级通路(路径),又若除 v 0 \ v_0 v0= v l \ v_l vl,所有的顶点各不相同,则称 Γ \Gamma Γ为初级回路(圈)。
(4)复杂通路与复杂回路:有边重复出现。
【表示法】
①定义表示法
②只用边表示法
③只用顶点表示法(在简单图中)
④混合表示法
例图中, L 1 \ L_1 L1= a d c f e \ adcfe adcfe是长度为4的简单通路,也是初级通路。
L 2 \ L_2 L2= a b e d a b \ abedab abedab不是简单通路(两次包含(a,b))
L 3 \ L_3 L3= a e b c d a \ aebcda aebcda是简单回路也是初级回路
【定理2-1】在 n \ n n阶图 G \ G G中,若从顶点 v i \ v_i vi到 v j \ v_j vj( v i \ v_i vi ≠ \neq = v j \ v_j vj)存在通路,则从 v i \ v_i vi到 v j \ v_j vj存在长度小于或等于 n \ n n-1的通路。
证明:设 v i \ v_i vi到 v j \ v_j vj存在一条长度为 k \ k k的路,若 k \ k k小于或等于 n \ n n-1,则定理成立;若 k \ k k大于 n \ n n-1,从图中可看出,此路中有一条回路( v s \ v_s vs= v t \ v_t vt),此回路中有 t \ t t- s \ s s条边( t \ t t- s \ s s>1),删除该 t \ t t- s \ s s条边。如此重复,最后必可找到长度小于 n \ n n-1的通路。
【推论】在 n \ n n阶图 G \ G G中,若从顶点 v i \ v_i vi到 v j \ v_j vj( v i \ v_i vi ≠ \neq = v j \ v_j vj)存在通路,则从 v i \ v_i vi到 v j \ v_j vj存在长度小于或等于 n \ n n-1的初级通路(路径)。
【定理2-2】在一个 n \ n n阶图 G \ G G中,若存在 v i \ v_i vi到自身的回路,则一定存在 v i \ v_i vi到自身长度小于或等于 n \ n n的回路。
【推论】在一个 n \ n n阶图 G \ G G中,若存在 v i \ v_i vi到自身的简单回路,则一定存在长度小于或等于 n \ n n的初级回路。
二、无向图的连通性
【两个结点连通】在无向图中,结点 u \ u u和 v \ v v之间如果存在一条通路,则称 u \ u u与 v \ v v是连通的。记作 u \ u u~ v \ v v
规定:对任何结点 u \ u u, u \ u u~ u \ u u。
【结点之间的连通关系是个等价关系】
令 G \ G G=< V \ V V, E \ E E>是无向图, R \ R R是 V \ V V上连通关系,即 R \ R R={< u \ u u, v \ v v>| u \ u u, v \ v v ∈ \in ∈ V \ V V且 u \ u u~ v \ v v},显然 R \ R R具有自反、对称和传递性。于是可以求商集 V / R \ V/R V/R。
例:给定下图所示:
V / R \ V/R V/R={{ a , b , g \ a,b,g a,b,g},{ c , d , e , f \ c,d,e,f c,d,e,f},{ h \ h h}}
【 G \ G G的连通性与连通分支】
①若 ∀ u \forall u ∀u, v \ v v ∈ \in ∈ V \ V V, u \ u u~ v \ v v,则称 G \ G G是连通的
② V / R \ V/R V/R={ V 1 \ V_1 V1, V 2 \ V_2 V2,… V k \ V_k Vk},称等价类构成的子图 G \ G G[ V 1 \ V_1 V1], G \ G G[ V 2 \ V_2 V2],… G \ G G[ V k \ V_k Vk]为 G \ G G的连通分支,其个数 p ( G ) \ p(G) p(G)= k \ k k( k \ k k ≥ 1 \geq1 ≥1);
k \ k k=1, G \ G G是连通的。
下面实例中 p ( G 1 ) \ p(G_1) p(G1)=3, p ( G 2 ) \ p(G_2) p(G2)=2, p ( G 3 ) \ p(G_3) p(G3)=1
【距离】
① u \ u u与 v \ v v之间的距离: d ( u , v ) \ d(u,v) d(u,v)—— u \ u u与 v \ v v之间长度最短的通路。
② d ( u , v ) \ d(u,v) d(u,v)的性质: d ( u , v ) ≥ 0 \ d(u,v)\geq0 d(u,v)≥0, u ≁ v \ u\nsim v u≁v时 d ( u , v ) \ d(u,v) d(u,v)= ∞ \infty ∞
d ( u , v ) \ d(u,v) d(u,v)= d ( v , u ) \ d(v,u) d(v,u)
d ( u , v ) \ d(u,v) d(u,v)= d ( v , w ) \ d(v,w) d(v,w) ≥ \geq ≥ d ( u , w ) \ d(u,w) d(u,w)
【删除顶点及删除边】
G − v \ G-v G−v :从 G \ G G中将 v \ v v及与 v \ v v关联的边去掉
G − V ′ \ G-V' G−V′:从 G \ G G中删除 V ′ \ V' V′中所有的顶点
G − e \ G-e G−e :将 e \ e e从 G \ G G中去掉
G − E ′ \ G-E' G−E′:删除 E ′ \ E' E′中所有边
【点割集】设无向连通图 G \ G G=< V , E \ V,E V,E>, V ′ ⊂ V \ V'\subset V V′⊂V
V ′ \ V' V′为点割集—— p ( G − V ′ ) \ p(G-V') p(G−V′)> P ( G ) P(G) P(G)且有极小性。如果点割集中只有一个顶点 v \ v v,则 v \ v v为割点。
【边割集】设无向连通图 G \ G G=< V , E \ V,E V,E>, E ′ ⊆ E \ E'\subseteq E E′⊆E
E ′ \ E' E′是边割集—— p ( G − E ′ ) \ p(G-E') p(G−E′)> p ( G ) \ p(G) p(G)且有极小性。如果边割集中只有一条边 e \ e e,则 e \ e e是割边(桥)。
例:{ v 1 , v 4 \ v_1,v_4 v1,v4},{ v 6 v_6 v6}是点割集, v 6 v_6 v6是割点;{ e 1 , e 2 e_1,e_2 e1,e2},{ e 1 , e 3 , e 5 , e 6 e_1,e_3,e_5,e_6 e1,e3,e5,e6},{ e 8 e_8 e8}是边割集, e 8 e_8 e8是桥。
【点连通度】 G \ G G为连通非完全图, κ ( G ) \kappa(G) κ(G)={| V ′ \ V' V′| ∣ \lvert ∣ V ′ \ V' V′为点割集}为 G \ G G的点连通度。
规定 κ ( K n ) \kappa(K_n) κ(Kn)= n \ n n-1
若 G \ G G非连通, κ ( G ) \kappa(G) κ(G)=0;若 κ ( G ) \kappa(G) κ(G)= k k k,则称 G G G为 k k k-连通图
【边连通度】 G G G为连通图, λ ( G ) \lambda(G) λ(G)= min \min min{| E ′ E' E′| ∣ \lvert ∣ E ′ \ E' E′为边割集}为 G G G的边连通度。
若 G G G非连通,则 λ ( G ) \lambda(G) λ(G)=0
若 λ ( G ) \lambda(G) λ(G)= r r r,则称 G G G是 r r r-边连通图
【几点说明】
κ ( K n ) \kappa(K_n) κ(Kn)= λ ( K n ) \lambda(K_n) λ(Kn)= n n n-1; G G G非连通,则 κ \kappa κ= λ \lambda λ=0
若 G G G中有割点,则 κ \kappa κ=1,若有桥,则 λ \lambda λ=1
若 λ ( G ) \lambda(G) λ(G)=k,则 G G G是1-连通图,2-连通图,… k k k-连通图,但不是( k k k+ s s s)-连通图, s ≥ 1 s\geq1 s≥1
若 λ ( G ) \lambda(G) λ(G)= r r r,则 G G G是1-边连通图,2-边连通图,… r r r-边连通图,但不是( r r r+ s s s)边连通图, s ≥ 1 s\geq1 s≥1
【定理2-3】 κ ( G ) \kappa(G) κ(G) ≤ \leq ≤ λ ( G ) \lambda(G) λ(G) ≤ \leq ≤ δ ( G ) \delta(G) δ(G)
三、有向图的连通性
【顶点间的可达性】 D D D=< V ′ E V'E V′E>为有向图
v i v_i vi → \rightarrow → v j v_j vj( v i v_i vi可达 v j v_j vj)—— v i v_i vi到 v j v_j vj有通路
v i v_i vi ↔ \leftrightarrow ↔ v j v_j vj( v i v_i vi与 v j v_j vj相互可达)
【性质】
→ \rightarrow →具有自反性( v i v_i vi → \rightarrow → v j v_j vj)、传递性
↔ \leftrightarrow ↔具有自反性、对称性、传递性
【 v i v_i vi到 v j v_j vj的距离】
类似于无向图中,只需注意距离表示法的不同。
(无向图中 d ( v i , v j ) d(v_i,v_j) d(vi,vj),有向图中 d d d< v i , v j v_i,v_j vi,vj>)及 d d d< v i , v j v_i,v_j vi,vj>无对称性
【定义】 D D D=< V , E V,E V,E>为有向图
D D D弱连通——基图为无向连通图(基图就是去掉方向后的图)
D D D单向连通—— ∀ v i , v j ∈ V \forall v_i,v_j\in V ∀vi,vj∈V, v i v_i vi → \rightarrow → v j v_j vj或 v j v_j vj → \rightarrow → v i v_i vi
D D D强连通—— ∀ v i , v j ∈ V \forall v_i,v_j\in V ∀vi,vj∈V, v i v_i vi ↔ \leftrightarrow ↔ v j v_j vj
【定理2-4】 D D D强连通当且仅当 D D D中存在经过每个顶点至少一次的回路。
例:判断下图的连通性:
G 1 G_1 G1强连通, G 2 G_2 G2弱连通, G 3 G_3 G3单侧连通
一、邻接矩阵
以结点与结点之间的邻接关系确定的矩阵。
【定义】设 G G G=< G , E G,E G,E>是个简单图, V V V={ v 1 , v 2 , v 3 . . . v n v_1,v_2,v_3...v_n v1,v2,v3...vn},一个 n n nx n n n阶矩阵 A A A=( a i j a_{ij} aij)称为 G G G的邻接矩阵。
其中:
a i j a_{ij} aij= { 1 v i 与 v j 邻 接 , 即 ( v i , v j ) ∈ E 或 < v i , v j > ∈ E 0 否 则 \left\{\begin{aligned}1& v_i与v_j邻接,即(v_i,v_j)\in E或\in E\\0& 否则\end{aligned}\right. {10 vi与vj邻接,即(vi,vj)∈E或<vi,vj>∈E 否则
例:给定无向图 G 1 G_1 G1和有向图 G 2 G_2 G2如图所示,求邻接矩阵。
解:
性质:
无向图:每行1的个数=每列1的个数=对应结点的度
有向图:每行1的个数=对应结点的出度
每列1的个数=对应结点的入度
【邻接矩阵的乘积】
在 ( A ( G 1 ) ) (A(G_1)) (A(G1))2中 a 34 a_{34} a342=2表示从 v 3 v_3 v3到 v 4 v_4 v4有长度为2的路有2条。
在 ( A ( G 1 ) ) (A(G_1)) (A(G1))3中 a 23 a_{23} a233=6表示从 v 2 v_2 v2到 v 3 v_3 v3有长度为3的路有6条。
【定理3-1】设 A A A为有向图 D D D的邻接矩阵, V V V={ v 1 , v 2 , . . . v n v_1,v_2,...v_n v1,v2,...vn}为顶点集,则 A A A的 l l l次幂 A l A^l Al( l ≥ 1 l\geq1 l≥1)中的元素
a i j ( l ) a_{ij}^{(l)} aij(l)为 D D D中 v i v_i vi到 v j v_j vj长度为 l l l的通路数,其中
a i i ( l ) a_{ii}^{(l)} aii(l)为 v i v_i vi到自身长度为 l l l的回路数,而
∑ i = 1 n \sum\limits_{i=1}^{n} i=1∑n a i i ( l ) a_{ii}^{(l)} aii(l)为 D D D中长度为 l l l的通路总数,
∑ i = 1 n \sum\limits_{i=1}^{n} i=1∑n ∑ j = 1 n \sum\limits_{j=1}^{n} j=1∑n a i j ( l ) a_{ij}^{(l)} aij(l)为 D D D中长度为 l l l的回路总数。
实例
例:有向图 D D D如图所示,求 A , A 2 , A 3 , A 4 A,A^2,A^3,A^4 A,A2,A3,A4,并回答问题:
(1) D D D中长度为1,2,3,4的通路各有多少条?其中回路分别为多少条?
(2) D D D中长小于或等于4的通路为多少条?其中有多少条回路?
二、可达性矩阵
【定义】设 G G G=< V , E V,E V,E>是个简单图, V V V={ v 1 , v 2 , v 3 , . . . v n , v_1,v_2,v_3,...v_n, v1,v2,v3,...vn,},一个 n n nx n n n阶矩阵 P P P=( p i j p_{ij} pij)称为 G G G的可达性矩阵。其中:
p i j p_{ij} pij= { 1 v i 到 v j 可 达 ( 至 少 有 一 条 通 路 ) 0 否 则 \left\{\begin{aligned}1& v_i到v_j可达(至少有一条通路)\\0& 否则\end{aligned}\right. {10 vi到vj可达(至少有一条通路) 否则
【求可达矩阵】
两种方法求可达性矩阵 P P P:
方法1. 按照矩阵相乘分别求出 A ( k ) A^{(k)} A(k)( k ≥ 2 k\geq2 k≥2),然后再 ∨ \vee ∨。
方法2. 用求传递闭包的Wareshall算法。
由定义不难看出, G G G强连通当且仅当 P ( G ) P(G) P(G)为全1矩阵
三、关联矩阵
①无向图的完全关联矩阵
【定义】设 G G G=< V , E V,E V,E>是个无向图, V V V={ v 1 , v 2 , v 3 . . . v m v_1,v_2,v_3...v_m v1,v2,v3...vm}, E E E={ e 1 , e 2 , e 3 . . . e n e_1,e_2,e_3...e_n e1,e2,e3...en},一个 m m mx n n n阶矩阵 M M M=( m i j m_{ij} mij)称为 G G G的关联矩阵。其中:
m i j m_{ij} mij= { 1 v i 到 e j 关 联 0 否 则 \left\{\begin{aligned}1& v_i到e_j关联\\0& 否则\end{aligned}\right. {10 vi到ej关联 否则
【性质】
a)每列只有二个1。
b)每行中1的个数为对应结点的度数。
c)如果两列相同,则说明对应的两条边是平行边。
②有向图的关联矩阵
【定义】设 G G G=< V , E V,E V,E>是个简单有向图, V V V={ v 1 , v 2 , v 3 . . . v m v_1,v_2,v_3...v_m v1,v2,v3...vm}, E E E={ e 1 , e 2 , e 3 . . . e n e_1,e_2,e_3...e_n e1,e2,e3...en},一个 m m mx n n n阶矩阵 M M M=( m i j m_{ij} mij)称为 G G G的完全关联矩阵。其中:
m i j m_{ij} mij= { 1 v i 是 e j 的 起 点 − 1 v i 是 e j 的 终 点 0 v i 与 e j 不 关 联 \left\{\begin{aligned}1& v_i是e_j的起点\\-1& v_i是e_j的终点\\0& v_i与e_j不关联\end{aligned}\right. ⎩⎪⎨⎪⎧1−10 vi是ej的起点 vi是ej的终点 vi与ej不关联
【性质】
a)每列只有一个1和一个-1。(每条边有一个起点一个终点)
b)每行中1的个数为对应结点的出度,-1个数是结点入度。
欧拉图历史背景
欧拉图(E图)定义
【欧拉通路】经过图中每条边一次且仅一次行遍所有顶点的通路。
【欧拉回路】经过图中每条边一次且仅一次行遍所有顶点的回路。
【欧拉图】有欧拉回路的图。
【半欧拉图】有欧拉通路而无欧拉回路的图。
说明:
规定平凡图为欧拉图。
欧拉通路是生成的简单通路,欧拉回路是生成的简单回路。
环不影响图的欧拉性。
无向欧拉图的判别法
【定理4-1】无向图 G G G是欧拉图当且仅当 G G G连通且无奇度数顶点。
证明:若 G G G为平凡图成立。设 G G G为 n n n阶 m m m条边的无向图
必要性 设 C C C为 G G G中一条欧拉回路。显然 G G G是连通的。
∀ a \forall a ∀a ∈ V ( G ) \in V(G) ∈V(G), a a a中 C C C上每出现一次贡献2度,所以 a a a为偶度顶点。
由 a a a的任意性,结论为真。
充分性 通过构造的方法来证明。
(1)设 G G G是连通图且 G G G中每一个顶点都有偶数度,构造从 G G G的任意顶点 a a a开始的简单回路,建立尽量长的简单通路( a , x 1 a,x_1 a,x1),( x 1 , x 2 x_1,x_2 x1,x2),…( x n − 1 , x n x_{n-1},x_n xn−1,xn),( x n , a x_n,a xn,a)进行构造。如下图中( a , f a,f a,f),( f , c f,c f,c),( c , b c,b c,b),( b , a b,a b,a)。这样的通路必然结束,因为图中的边数是又穷的。
(2)若所有的边已用完,则欧拉回路构造完成。否则从 G G G中删除已经用过的边和不关联任何剩下边的顶点,得到子图 H H H,如图中 c , d , e c,d,e c,d,e构成的子图。因为 G G G是连通的,所以 H H H和已删除的回路至少有一个公共顶点 w w w,然后在 w w w上开始,构造新的回路,新的回路必然和原回路通过 w w w拼接成 G G G中的回路。
(3)继续这样的过程,直到用完所有的边为止,这样就产生出欧拉回路。
必要性得证。
【定理4-2】无向图 G G G是半欧拉图当且仅当 G G G连通且恰有两个奇度顶点。
证明:必要性简单。
充分性 (利用定理4-1)设 u , v u,v u,v为 G G G中的两个奇度顶点,令 G ′ G' G′= G ∪ ( u , v ) G\cup(u,v) G∪(u,v),则 G ′ G' G′连通且无奇度顶点,由定理4-1知 G ′ G' G′为欧拉图,因而存在欧拉回路 C C C,令 Γ \Gamma Γ= C − ( u , v ) C-(u,v) C−(u,v),则 Γ \Gamma Γ为 G G G中欧拉通路。
理解: G G G中有两个奇数度结点:就从一个奇数度结点出发,每当到达一个偶数度结点,必然可以再经过另一条边离开次结点,如此重复下去,经过所有边后到达另一个奇数度结点。
有向欧拉图的判别法
【定理4-3】有向图 D D D是欧拉图当且仅当 D D D是强连通的且每个顶点的入度都等于出度。
【定理4-4】有向图 D D D是半欧拉图当且仅当 D D D是单向连通的,且 D D D中恰有两个奇数顶点,其中一个的入度比出度大1,另一个的出度比入度大1,而其余顶点的入度都等于出度。
【定理4-5】 G G G是非平凡的欧拉图当且仅当 G G G是连通的且为若干个边不重复的圈的并集。
汉密尔顿图
汉密尔顿图定义
【汉密尔顿通路】经过图中所有顶点一次仅一次的通路。
【汉密尔顿回路】经过图中所有顶点一次仅一次的回路。
【汉密尔顿图(H图)】具有汉密尔顿回路的图。
【半汉密尔顿图】具有汉密尔顿通路且无汉密尔顿回路的图。
几点说明:
平凡图是汉密尔顿图;
汉密尔顿通路是初级通路,汉密尔顿回路是初级回路;
环与平行边不影响汉密尔顿性;
汉密尔顿图的实质是能将图中的所有顶点排在同一个图上。
例1:
在上图中, G 1 G_1 G1是汉密尔顿图; G 2 G_2 G2是半汉密尔顿图; G 3 G_3 G3既不是汉密尔顿图,也不是半汉密尔顿图。
无向汉密尔顿图的必要条件
【定理5-1】设无向图 G G G=< V , E V,E V,E>是汉密尔顿图,对于任意 V 1 ∈ V V_1\in V V1∈V且 V 1 ≠ V_1\neq V1=∅,均有 p ( G − V 1 ) ≤ p(G-V_1)\leq p(G−V1)≤ ∣ \vert ∣ V 1 V_1 V1 ∣ \rvert ∣
证明:设 C C C为 G G G中一条汉密尔顿回路
(1) p ( C − V 1 ) ≤ p(C-V_1)\leq p(C−V1)≤ ∣ \vert ∣ V 1 V_1 V1 ∣ \rvert ∣
(2) p ( G − V 1 ) ≤ p(G-V_1)\leq p(G−V1)≤ p ( C − V 1 ) ≤ p(C-V_1)\leq p(C−V1)≤ ∣ \vert ∣ V 1 V_1 V1 ∣ \rvert ∣(因为 C ⊆ G C\subseteq G C⊆G)
【推论】设无向图 G G G=< V , E V,E V,E>是半汉密尔顿图,对于任意的 V 1 ⊂ V V_1\subset V V1⊂V且 V 1 ≠ V_1\neq V1=∅均有 p ( G − V 1 ) ≤ p(G-V_1)\leq p(G−V1)≤ ∣ \lvert ∣ V 1 V_1 V1 ∣ \rvert ∣+1
证明:令 Γ u , v \Gamma u,v Γu,v为 G G G中汉密尔顿通路,令 G ′ G' G′= G ∪ ( u , v ) G\cup(u,v) G∪(u,v),则 G ′ G' G′为汉密尔顿图,于是 p ( G − V 1 ) p(G-V_1) p(G−V1)= p ( G ′ − V 1 − ( u , v ) ) ≤ p(G'-V_1-(u,v))\leq p(G′−V1−(u,v))≤ ∣ \lvert ∣ V 1 V_1 V1 ∣ \rvert ∣+1
说明:
定理5-1中的条件是汉密尔顿图的必要条件,但不是充分条件(彼得松图)
常利用定理5-1判断某些图不是汉密尔顿图。
例2:设 G G G为 n n n阶无向连通简单图,若 G G G中有割点或桥,则 G G G不是汉密尔顿图。
证明:设 v v v为割点,则 p ( G − v ) ≥ 2 p(G-v)\geq2 p(G−v)≥2 > > > ∣ \lvert ∣{ v v v} ∣ \rvert ∣=1。
K 2 K_2 K2有桥,它显然不是汉密尔顿图。除 K 2 K_2 K2外,其他有桥的图(连通的)均有割点。
其实,本例也适用于非简单连通图。
无向汉密尔顿图的充分条件
【定理5-2】设 G G G是 n n n阶无向简单图,若对于任意不相邻的顶点 v i , v j v_i,v_j vi,vj,均有 d ( v i ) d(v_i) d(vi)+ d ( v j ) d(v_j) d(vj) ≥ \geq ≥ n n n-1,则 G G G中存在汉密尔顿通路。
证明:(1)证明 G G G连通;(2)构造 H H H通路
【推论】设 G G G为 n ( n ≥ 3 ) n(n\geq3) n(n≥3)阶无向简单图,若对于 G G G中任意两个不相邻的顶点 v i , v j v_i,v_j vi,vj,均有 d ( v i ) d(v_i) d(vi)+ d ( v j ) ≥ n d(v_j)\geq n d(vj)≥n,则 G G G中存在汉密尔顿回路,从而 G G G为汉密尔顿图。
说明:
定理5-2 半哈密尔顿图的充分条件,但不是必要条件。长为 n n n-1( n ≥ 4 n\geq4 n≥4)的路径构成的图不满足条件,但它显然是半汉密尔顿图。
定理5-2的推论同样不是汉密尔顿图的必要条件, G G G为长为 n n n的图,不满足条件,但它当然是汉密尔顿图。
由定理5-2的推论可知, K n K_n Kn( n ≥ 3 n\geq3 n≥3)均为汉密尔顿图。
有向汉密尔顿图的充分条件
【定理5-3】若 D D D为 n ( n ≥ 2 ) n(n\geq2) n(n≥2)阶竞赛图,则 D D D中具有汉密尔顿通路。
证明思路:注意,竞赛图的基图是无向完全图。对 n ( n ≥ 2 ) n(n\geq2) n(n≥2)做归纳,只需观察下面两个图。
汉密尔顿回路判定方法
求图中的汉密尔顿回路或判断某图是否有汉密尔顿回路至今还是一个难题。算法具有最坏时间复杂性。
可行方法:
1.观察出汉密尔顿回路;
2.满足充分条件;
3.必要条件判定不含有 H H H回路。
最短通路问题
基本概念
【带权图】给每条边赋权值为一个数的图。
【带权图中一条通路的长度】通路上各边权值的综合。
【最短通路】在两个给定顶点之间长度最短的通路。
旅行商问题
一个旅行商想访问n个城市中每个城市恰好一次并返回出发地,问怎样访问总距离最短?
若从c出发,依次经过b,e,a,d,再回到c的总距离最短,为458。
【旅行商问题】
设 G G G=< V , E , W V,E,W V,E,W>为一个 n n n阶完全带权图 K n K_n Kn,各边的权非负。求 G G G中的一条最短的汉密尔顿回路,这就是旅行商问题。
完全带权图 K n ( n ≥ 3 ) K_n(n\geq3) Kn(n≥3)中不同的汉密尔顿回路数:
(1) K n K_n Kn中有( n n n-1)!条不同的汉密尔顿回路。
(2)用穷举法解旅行商问题算法的复杂度为( n n n-1)!,当 n n n较大时,计算量惊人地大。
例:求图中(1)所示带权图 K 4 K_4 K4中最短汉密尔顿回路。
解: C 1 C_1 C1= a , b , c , d , a a,b,c,d,a a,b,c,d,a W ( C 1 ) W(C_1) W(C1)=10
C 2 C_2 C2= a , b , d , c , a a,b,d,c,a a,b,d,c,a W ( C 2 ) W(C_2) W(C2)=11
C 3 C_3 C3= a , c , b , d , a a,c,b,d,a a,c,b,d,a W ( C 3 ) W(C_3) W(C3)=9
可见 C 3 C_3 C3(见图中(2))是最短的,其权为9。
平面图的基本概念
G G G是可平面图或平面图——将 G G G除顶点外无边相交的画在平面上。这种画法成为图的平面表示(平面嵌入)
图中,(2)是(1)的平面嵌入,(4)是(3)的平面嵌入
平面图(平面嵌入)的面与次数
1. G G G的面—— G G G的平面嵌入的边将平面划分成的若干区域;
2.无限面或外部面——面积无限的面;
3.有限面或内部面——面积有限的面;
4.面 R i R_i Ri的边界——包围 R i R_i Ri的回路组;
5.面 R i R_i Ri的次数—— R i R_i Ri边界的长度,用 d e g ( ) R i deg()R_i deg()Ri表示。
r 1 r_1 r1:边界: A B C D F D A ABCDFDA ABCDFDA d e g ( r 1 ) deg(r_1) deg(r1)=6
r 2 r_2 r2:边界: A B C A ABCA ABCA d e g ( r 2 ) deg(r_2) deg(r2)=3
r 3 r_3 r3:边界: A C D A ACDA ACDA d e g ( r 3 ) deg(r_3) deg(r3)=3
r 0 r_0 r0:边界: A D A ADA ADA d e g ( r 0 ) deg(r_0) deg(r0)=2
说明:
若平面图 G G G有 k k k个面,可用 R 1 , R 2 , . . . R k R_1,R_2,...R_k R1,R2,...Rk表示,不需要指出外部面。
定义中回路组:边界可能是初级回路(圈),简单回路或复杂回路。特别的,还可能是非连通的回路之并。
例 平面图有4个面, d e g ( R 1 ) deg(R_1) deg(R1)=1, d e g ( R 2 ) deg(R_2) deg(R2)=3, d e g ( R 3 ) deg(R_3) deg(R3)=2, d e g ( R 0 ) deg(R_0) deg(R0)=8
可以试着写出各面的边界。
【定理7-1】平面图各面次数之和等于边数的两倍。
欧拉公式
【定理7-2】欧拉公式:设 G G G为 n n n阶 m m m条边 r r r个面的连通平面图,则 n n n- m m m+ r r r=2
证:对边数 m m m做归纳法。 m m m=0, G G G为平凡图,结论为真。
设 m m m= k k k( k ≥ 1 k\geq1 k≥1)结论为真, m m m= k k k+1时分情况讨论:
(1) G G G中无圈,则 G G G为树,删除一片树叶,用归纳假设。
(2)否则,在某一个圈上删除一条边,j进行讨论。
【定理7-3】(欧拉公式的推广)设 G G G是具有 k ( k ≥ 2 ) k(k\geq2) k(k≥2)个连通分支的平面图,则 n n n- m m m+ r r r= k k k+1。
【定理7-4】设 G G G为连通的平面图,且 d e g ( R i ) ≥ l deg(R_i)\geq l deg(Ri)≥l, l ≥ 3 l\geq3 l≥3,则 m ≤ l l − 2 ( n − 2 ) m\leq\frac{l}{l-2}(n-2) m≤l−2l(n−2)
证 由定理7-1及欧拉公式得
2 m = ∑ i = 1 r d e g ( R i ) ≥ l ⋅ r = l ( 2 + m − n ) 2m=\sum_{i=1}^{r}deg(R_i)\geq l\cdot r=l(2+m-n) 2m=i=1∑rdeg(Ri)≥l⋅r=l(2+m−n)
解得 m ≤ m\leq m≤ l − 2 l \frac{l-2}{l} ll−2( n n n-2),也可得: m ≤ 3 n − 6 m\leq 3n-6 m≤3n−6
【推论】 K 5 , K 3 , 3 K_5,K_{3,3} K5,K3,3不是平面图。
【定理7-5】在具有 k ( k ≥ 2 ) k(k\geq2) k(k≥2)个连通分支的平面图中, m ≤ l l − 2 ( n − k − 1 ) m\leq \frac{l}{l-2}(n-k-1) m≤l−2l(n−k−1)
【定理7-6】设 G G G为 n ( n ≥ 3 ) n(n\geq3) n(n≥3)阶 m m m条边的简单平面图,则 m ≤ 3 n − 6 m\leq3n-6 m≤3n−6
证 设 G G G有 k ( k ≥ 1 ) k(k\geq1) k(k≥1)个连通分支,若 G G G为树或森林,当 n ≥ 3 n\geq3 n≥3时, m ≤ 3 n − 6 m\leq3n-6 m≤3n−6为真。否则 G G G中含圈,每个面至少由 l ( l ≥ 3 ) l(l\geq3) l(l≥3)条边围成,又 l l − 2 = 1 + 2 l − 2 \frac{l}{l-2}=1+\frac{2}{l-2} l−2l=1+l−22
在 l l l=3达到最大值,由定理7-5可知 m ≤ 3 n − 6 m\leq3n-6 m≤3n−6
平面图的判定
1.插入2度顶点和消去2度顶点
定义:(1)消去2度顶点 v v v,见下图中,由(1)到(2)
(2)插入2度顶点 v v v,见下图中,从(2)到(1)
对偶图
图着色的区域着色可转化为对偶图的点着色。
【定义】设 G G G时某平面图的某个平面嵌入,构造 G G G的对偶图 G ∗ G^* G∗如下:
(1)在 G G G的面 R i R_i Ri中放置 G ∗ G^* G∗的顶点 v i ∗ v_i^* vi∗;
(2)若 G G G中的边 e e e中 G G G的面 R i R_i Ri与 R j R_j Rj的公共边界上,做 G ∗ G^* G∗的边 e ∗ e^* e∗与 e e e相交,即 e ∗ e^* e∗=( v i ∗ , v j ∗ v_i^*,v_j^* vi∗,vj∗),且 e ∗ e^* e∗不与其他任何边相交;
(3)若 e e e只是一个面 R i R_i Ri的边界,则 e ∗ e^* e∗是以 R i R_i Ri中 G ∗ G^* G∗的顶点 v i ∗ v_i^* vi∗为端点的环,即 e ∗ e^* e∗=( v i ∗ , v i ∗ v_i^*,v_i^* vi∗,vi∗)。
对偶图实例如下图:
【定理8-1】设 G ∗ G^* G∗是连通平面图 G G G的对偶图, n ∗ , m ∗ , r ∗ n^*,m^*,r^* n∗,m∗,r∗和 n , m , r n,m,r n,m,r分别为 G ∗ G^* G∗和 G G G的顶点数、边数和面数,则
(1) n ∗ n^* n∗=r (2) m ∗ m^* m∗=m (3) r ∗ r^* r∗=r
(4)设 G ∗ G^* G∗的顶点 v i ∗ v_i^* vi∗位于 G G G的面 R i R_i Ri中,则 d ( v i ∗ ) d(v_i^*) d(vi∗)= d e g ( ) R i deg()R_i deg()Ri自对偶图
【定义】设 G ∗ G^* G∗是平面图 G G G的对偶图,若 G ∗ ∼ G^*\sim G∗∼= G G G,则称 G G G为自对偶图。
实例 n n n阶轮图(W_n)都是自对偶图,下图分别为 W 4 , W 6 W_4,W_6 W4,W6和 W 7 W_7 W7的对偶图,并且都是自对偶图。
点着色
1.图 G G G的点着色——给图 G G G的每个顶点涂上一种颜色,使相邻顶点具有不同颜色。
2.对 G G G进行 k k k着色( G G G是 k k k-可着色的)——能用 k k k种颜色给 G G G的顶点着色。
3. G G G的色数 χ ( G ) \chi(G) χ(G)= k — ( G ) k—(G) k—(G)是 k k k-可着色的,但不是( k k k-1)-可着色的。
上述各图中,色数分别为2,3,4,5。
着色方法
对 G G G着色方法(韦尔奇.鲍威尔法 welch.Powell)
(1)将 G G G中的结点按照度数递减次序排列,(此排序可能不唯一);
(2)用第一种颜色对第一个结点着色,并按照排序, 对与前面着色点不邻接的每一个点着上相同的颜色;
(3)用另一种颜色对尚未着色的点,重复执行(2)和(3),直到所有节点都着上颜色为止。
例:下图结点排序: A , B , E , F , H , D , G , C A,B,E,F,H,D,G,C A,B,E,F,H,D,G,C。结点度数:5,5,4,4,3,3,2
图着色应用实例
1.考试安排:安排一所大学里的期末考试,使得没有学生在同一时间有两门考试。
设有七门课程,分别记作 A , B , C , D , E , F , G A,B,C,D,E,F,G A,B,C,D,E,F,G,如果两门课程有共同的学生在读,就在两门课程之间连一直线,得到下图
结点度数递减排序: B , C , D , G , A , E , F B,C,D,G,A,E,F B,C,D,G,A,E,F
对图正常着色后,标有同一颜色的课,可以同时考试。安排考试日程:
周一:A 周二:B,F 周三:C,E 周四:D,G
无向树的定义
【无向树】连通无回路的无向图
【森林】每个连通分支(至少两个)都是树的无向图
【叶子节点】度数为1度的结点
【分支节点】度数 ≥ 2 \geq2 ≥2的顶点
无向树的等价定义
【定理9-1】设 G G G=< V , E V,E V,E>是 n n n阶 m m m条边的无向图,以下命题是等价的:
(1) G G G是树;
(2) G G G中任意两个顶点之间存在唯一的路径;
(3) G G G中无回路且 m m m= n n n-1;
(4) G G G是连通的且 m m m= n n n-1;
(5) G G G是连通的且 G G G中任何边均为桥;
(6) G G G中没有回路,但在任何两个不同的顶点之间加一条新边,在所得图中得到唯一的一个含新边的回路。
无向树的性质
【定理9-2】设 T T T是 n n n阶非平凡的无向树, 则 T T T中至少有两片树叶。
证 设 T T T有 x x x片树叶,由握手定理及定理9-2可知, 2 ( n − 1 ) = ∑ d ( v i ) ≥ x + 2 ( n − x ) 2(n-1)=\sum d(v_i)\geq x+2(n-x) 2(n−1)=∑d(vi)≥x+2(n−x)
由上式解出 x ≥ 2 x\geq2 x≥2
生成树定义设 G G G为无向图
【 G G G的生成树】—— T T T是 G G G的生成子图并且是树
【生成树 T T T的树枝】—— T T T中的边
【生成树 T T T的弦】——不在 T T T中的边
【生成树 T T T的余树 T T T补】——全体弦组成的集合的导出子图
生成树存在条件
【定理10-1】无向图 G G G具有生成树当且仅当 G G G连通
【推论1】 G G G为 n n n阶 m m m条边的无向连接图,则 m ≥ n − 1 m\geq n-1 m≥n−1
【推论2】 T T T补的边数为 m − n + 1 m-n+1 m−n+1
基本回路系统
【定义】设 T T T是 n n n阶 m m m条边的无向连通图 G G G的一棵生成树,设 e 1 ′ , e 2 ′ , . . . e m − n + 1 ′ e'_1,e'_2,...e'_{m-n+1} e1′,e2′,...em−n+1′为 T T T的弦。设 C r C_r Cr为 T T T添加弦 e r ′ e_r' er′产生的只含弦 e r ′ e_r' er′、其余边均为树枝的圈。称 C r C_r Cr为 G G G的对应树 T T T的弦 e r ′ e_r' er′的基本回路或基本圈, r r r=1,2…, m m m- n n n+1,并称{ C 1 , C 2 , . . . C m − n + 1 C_1,C_2,...C_{m-n+1} C1,C2,...Cm−n+1}为对应 T T T的基本回路系统,称 m m m- n n n+1为 G G G的圈秩,记作 ξ ( G ) \xi(G) ξ(G)
求基本回路的算法:设弦 e e e=( u , v u,v u,v),先求 T T T中 u u u到 v v v的路径 Γ u v \Gamma uv Γuv,再并上弦 e e e,即得对应 e e e的基本回路。
最小生成树
【定义】 T T T是 G G G=< V , E , W V,E,W V,E,W>的生成树, W ( T ) W(T) W(T)为 T T T中各边权的和,最小生成树是指 G G G的所有生成树中权最小的生成树。
求最小生成树的一个算法
避圈法(Kruskal)设 G G G=< V , E , W V,E,W V,E,W>,将 G G G中非环边按权从小到大排序: e 1 , e 2 , . . . e m e_1,e_2,...e_m e1,e2,...em
(1)在 T T T中取 e 1 e_1 e1;
(2)查看 e 2 e_2 e2,若 e 2 e_2 e2与 e 1 e_1 e1不构成回路,在 T T T中取 e 2 e_2 e2,否则弃 e 2 e_2 e2;
(3)再查看 e 3 e_3 e3,…,直到得到生成树为止。
一、有向树
定义:如果 G G G是个有向图,且暂不考虑边的方向时(即基图)是一棵树,则称 G G G是有向树。
二、根树
设 T T T是有向树
【 T T T为根】 T T T中一个顶点入度为0,其余的入度均为1。
【根树】入度为0的顶点。
【树叶】入度为1,出度为0的顶点。
【分支点】出度不为0的顶点。
【顶点 v v v的层数】从树根到 v v v的通路长读。
【树高】 T T T中层数最大的顶点的层数。
【平凡根树】平凡图。
根树的画法:树根放上方,省去所有有向边上的箭头。
三、家族树与根子树
【定义】 T T T为非平凡根树
(1)祖先与后裔: T T T中,如果从 v i v_i vi到 v j v_j vj有路,则称 v i v_i vi是 v j v_j vj的祖先结点。
(2)父亲与儿子:如果< v i , v j v_i,v_j vi,vj>是根树中的一条边,则称 v i v_i vi是 v j v_j vj的父结点, v i v_i vi是 v j v_j vj的子结点。
(3)兄弟:具有相同父亲的顶点。
【定义】设 v v v为根树 T T T中任意一顶点,称 v v v及其后裔的导出子图为以 v v v为根的根子树。
四、根树的分类
(1) T T T为有序根树: T T T中同层上顶点标定次序的根树。
(2)分类
① r r r叉树:每个分支点至多有 r r r个儿子。
② r r r叉有序树: r r r叉树是有序的。
③ r r r叉正则树:每个分支点恰有 r r r个儿子。
④ r r r叉正则有序树
⑤ r r r叉完全正则树:树叶层数相同的 r r r叉正则树。
⑥ r r r叉完全正则有序树
根数的应用
最优树的求法、最优前缀码的设计方法、二叉树的遍历