第16讲 图的应用 课堂互动 隐藏答案 | 返回首页

作者:欧新宇(Xinyu OU)

最后更新:2023-12-12


【课前自测16】

1.任何一个无向连通图的最小生成树( )。
A. 有一棵或多棵
B. 只有一棵
C. 一定有多棵
D. 可能不存在

答案及解析:A
首先,无向连通图的最小生成树一定存在;其次,当无向连通图存在权值相同的多条边时,最小生成树可能是不唯一的,故而选项A正确。此外,对于有向图来说,最小生成树不一定存在,因为最小生成树要求所有顶点都在生成树中,而在有向图中,有的结点可能是不连通的。因此,对于非连通图来说,最小生成树一定不存在。

2. 在有向图G的拓扑序列中,若顶点 viv_i 在顶点 vjv_j 之前,则下列情形不可能出现的是()。
A. G中有弧 <vi,vj><v_i, v_j>
B. G中有一条从 viv_ivjv_j 的路径
C. G中没有弧 <vi,vj><v_i, v_j>
D. G中有一条从 vjv_jviv_i 的路径

答案及解析:D
在图G中,若顶点 viv_i 在顶点 vjv_j 之前,则说明顶点 viv_i 是顶点 vjv_j 的前驱,但不一定是直接前驱。此时,结点viv_i 必然在结点 vjv_j 之前进行输出。因此,选项ABC都是正确的,选项D则与题意相违背。

3.【2016统考真题】若对n个顶点、e条弧的有向图采用邻接表存储,则拓扑排序算法的时间复杂度是()。
A. O(n)
B. O(n+e)
C. O(n²)
D. O(ne)

答案及解析:B
采用邻接表作为 AOV 网的存储结构进行拓扑排序,需要对n个顶点做进栈、出栈、输出各一次,当处理e条边时,也需要检测这n个顶点的边链表的e个边结点,因此总时间代价为O(n+e)。 若采用邻接矩阵作为AOV网的存储结构进行拓扑排序,在处理e条边时需对每个顶点检测相应矩阵中的某一行,寻找与它相关联的边,以便对这些边的入度减1,需要的时间代价为O(n²)。

4.【2010统考真题】对下图进行拓扑排序,可得不同拓扑序列的个数是() 🏷️Img_Lec1602

A. 4
B. 3
C. 2
D. 1

答案及解析:B
根据拓扑排序规则,从起点a开始,该图可得到的拓扑排序序列包括3种,分别是:abced, abecd, aebcd。

5.【2020统考真题】若使用 AOE 网估算工程进度,则下列叙述中正确的是( )。
A. 关键路径是从源点到汇点边数最多的一条路径
B. 关键路径是从源点到汇点路径长度最长的路径
C. 增加任意一个关键活动的时间不会延长工程的工期
D. 缩短任意一个关键活动的时间将会缩短工程的工期

答案及解析:B
关键路径是指权值之和最大的路径,而非边数最多的路径,因此选项A是错误的,选项B是正确的。对于任意一个关键活动,延长其时间,会导致最终的工期延长,选项C正确。但反过来,对于任意一个关键活动,缩短工期有可能导致该关键活动不再是关键路径,因为可能存在其他的路径的权值高于它。

【课堂互动16.1】最小生成树 (Prim, Kruskal)

1. 用Prim算法和Kruskal算法构造图的最小生成树,所得到的最小生成树()。
A. 相同
B. 不相同
C. 可能相同,可能不同
D. 无法比较

答案及解析:C
由于无向连通图的最小生成树不一定唯一,所以用不同算法生成的最小生成树也可能不同;当无向连通图的最小生成树唯一时,不同算法生成的最小生成树必定是相同的。

2. 以下叙述中,正确的是()。
A. 只要无向连通图中没有权值相同的边,则其最小生成树唯一
B. 只要无向图中有权值相同的边,则其最小生成树一定不唯一
C. 从n个顶点的连通图中选取n-1条权值最小的边,即可构成最小生成树
D. 设连通图G含有n个顶点,则含有n个顶点、n-1条边的子图一定是G的生成树

答案及解析:A

3. 【2012统考真题】下列关于最小生成树的叙述中,正确的是()。
Ⅰ. 最小生成树的代价唯一
Ⅱ. 所有权值最小的边一定会出现在所有的最小生成树中
Ⅲ. 使用 Prim 算法从不同顶点开始得到的最小生成树一定相同
Ⅳ. 使用 Prim 算法和 Kruskal 算法得到的最小生成树总不相同

A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅲ
D. 仅Ⅱ、Ⅳ

答案及解析:A

4.【2015 统考真题】求下面的带权图的最小(代价)生成树时,可能是 Kruskal 算法第2次选中但不是Prim算法(从V4开始)第2次选中的边是( )
🏷️Img_Lec1606
Img_Lec1606

A. (V1, V3)
B. (V1, V4)
C. (V2, V3)
D. (V3, V4)

答案及解析:C
从V4开始,无论是Prim算法还是Kruskal算法,第1次被选中的边都(V4, V1)。因此,在第2轮中,Prim算法会选择与结点V1和V4相邻接的权值最小边中的一条即(V1, V3)或者(V4, V3);而Kruskal算法可以选择所有权值最小边中的一条,除了(V1, V3)或者(V4, V3)外,可选的边还包括(V2, V3)。因此只有选项C正确。

5.【2020 统考真题】已知无向图G如下所示,使用克鲁斯卡尔(Kruskal)算法求图G的最小生成树,加到最小生成树中的边依次是()。
🏷️Img_Lec1610
Img_Lec1610

A. (b,f), (b,d), (a,e), (c,e), (b,e)
B. (b,f), (b,d), (b,e), (a,e), (c,e)
C. (a,e), (b,e), (c,e), (b,d), (b,f)
D. (a,e), (c,e), (b,e), (b,f), (b,d)

答案及解析:A
根据Kruskal算法,首先将图G中的所有边按权值从小到大排序,然后从权值最小的边开始,将这条边加入到最小生成树中。在本题中,为了不产生环,边(d,f)被排除在外。因此,选项A正确。排序过程如图所示。 🏷️Img_Lec1625
Img_Lec1610

【课堂互动16.2】最短路径 (Dijkstra, Flord)

1. 以下叙述中,正确的是()。
A. 最短路径一定是简单路径
B. Dijkstra算法不适合求有回路的带权图的最短路径
C. Dijkstra算法不适合求任意两个顶点的最短路径
D. Floyd算法求两个顶点的最短路径时,pathk1path_{k-1} 一定是 pathkpath_k 的子集

答案及解析:A

2. 已知带权连通无向图 G = (V,E),其中V = {v1 ,v2, v3, v4, V5, V6, V7},E = {(v1, v2)10,(v1, v3)2, (v3, V4)2, (v3, v6)11, (v2, v5)1, (v4, v5)4, (v4, v6)6, (v5, v7)7, (v6, v7)3}(注:顶点偶对括号外的数据表示边上的权值),从源点v1到顶点v7的最短路径上经过的顶点序列是()。
A. v1, v2, v5, v7
B. v1, v3, v4, v6, v7
C. v1, v3, v4, v5, v7
D. v1, v2, v5, v4, v6, v7

答案及解析:B
首先,根据题意绘制出无向图G(🏷️Img_Lec1620),然后根据Dijkstra算法求出从v1到v7的最短路径:v1->v3->v4->v6->v7。
Img_Lec1620
此外,也可以分别计算出选项ABCD中路径的权值并从中选择权值最小的一个,即18,13,15,24,显然选项B的权值最小。

3. 【2016统考真题】使用 Dijkstra 算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是()。 🏷️Img_Lec1607

A. 5, 2, 3, 4, 6
B. 5, 2, 3, 6, 4
C. 5, 2, 4, 3, 6
D. 5, 2, 6, 3, 4

答案及解析:B

S d[1], path[1] d[2], path[2] d[3], path[3] d[4], path[4] d[5], path[5] d[6], path[6]
{1} 0, -1 5, 1 ∞, -1 ∞, -1 4, 1 ∞, -1
{1,5} 0, -1 5, 1 ∞, -1 11, 5 4, 1 9, 5
{1,5,2} 0, -1 5, 1 ∞, -1 11, 5 4, 1 9, 5
{1,5,2,3} 0, -1 5, 1 7, 2 11, 5 4, 1 9, 5
{1,5,2,3,6} 0, -1 5, 1 7, 2 11, 5 4, 1 9, 5
{1,5,2,3,6,4} 0, -1 5, 1 7, 2 11, 5 4, 1 9, 5

由此可以得到,从源点1到其他各顶点的最短路径依次为:1->5->2->3->6->4。选项B正确。
另一种方法,可以依次考察选项中的路径,通过判断先访问的路径是否比后访问的路径更短,来判定路径是否正确。选项A中,结点6比结点3路径更短,违背原则;选项C也类似,结点6比结点3,4都短;选项D,结点3比结点6更短,也违背原则。

4.【2012统考真题】对下图所示的有向带权图,若采用 Diikstra 算法求从源点 a 到其他各顶点的最短路径,则得到的第一条最短路径的目标顶点是b,第二条最短路径的目标顶点是c,后续得到的其余各最短路径的目标顶点依次是()。 🏷️Img_Lec1603

A. d, e, f
B. e, d, f
C. f, d, e
D. f, e, d

答案及解析:C

S d[a], path[a] d[b], path[b] d[c], path[c] d[d], path[d] d[e], path[e] d[f], path[f]
{a} 0, -1 2, a 5, a ∞, -1 ∞, -1 ∞, -1
{a,b} 0, -1 2, a 3, b 5, b ∞, -1 ∞, -1
{a,b,c} 0, -1 2, a 3, b 5, b 7, c 4, c
{a,b,c,f} 0, -1 2, a 3, b 5, b 7, c 4, c
{a,b,c,f,d} 0, -1 2, a 3, b 5, b 7, c 4, c
{a,b,c,f,d,e} 0, -1 2, a 3, b 5, b 7, c 4, c

由此可以得到,从源点a到其他各顶点的最短路径依次为:a->b->c->f->d->e。选项C正确。
另一种方法,可以依次考察选项中的路径,通过判断先访问的路径是否比后访问的路径更短,来判定路径是否正确。熟练后,也可以根据边的权值直接依次从图中获取最短路径。

5. 【2021统考真题】使用Dijkstra 算法求下图中从顶点1到其余各顶点的最短路径,将当前找到的从顶点1到顶点2,3,4,5的最短路径长度保存在数组dist中,求出第二条最短路径后,dist中的内容更新为()。 🏷️Img_Lec1612

A. 26, 3, 14, 6
B. 25, 3, 14, 6
C. 21, 3, 14, 6
D. 15, 3, 14, 6

答案及解析:C
根据Dijkstra算法,第一轮数组值为 dist{0, 26, 3, ∞, 6},确定结点3。第二轮数组值为 dist{0, 25, 3, ∞, 6},确定结点5。第三轮数组值为dist{0, 21, 3, 14, 6},确定结点4。

【课堂互动16.3】拓扑排序 (AOV)

1. 若一个有向图的顶点不能排成一个拓扑序列,则判定该有向图()。
A. 含有多个出度为0的顶点
B. 是个强连通图
C. 含有多个入度为0的顶点
D. 含有顶点数大于1的强连通分量

答案及解析:D
拓扑排序主要针对的是有向无圈图(DAG),图中不能有环。
-选项D,如果一个有向图中的顶点不能排成一个拓扑序列,则说明该图中必然存在回路,即至少包含一个顶点数大于1的强连通分量,选项D正确。
-选项A,对于存在多个出度为0的顶点,是正常的图,进行拓扑排序时只需要任意选择一个作为该结点的后继即可,选项A错误。
-选项C,对于存在多个入度为0的顶点,拓扑排序可以选择任意一个作为起点进行排序即可,因此选项C错误。
-选项B,强连通图不能进行拓扑排序,因为强连通图所有顶点都是相互连通的,因此会产生大量的环。但题设所给出要求只能确定至少存在一个强连通分量,并不能确定所有结点之间都具有强连通性,该选项过于苛刻。

2. 【2018统考真题】下列选项中,不是如下有向图的拓扑序列的是()。 🏷️Img_Lec1608

A. 1, 5, 2, 3, 6, 4
B. 5, 1, 2, 6, 3, 4
C. 5, 1, 2, 3, 6, 4
D. 5, 2, 1, 6, 3, 4

答案及解析:D
该题简单的解法是依次检查每个选项中的结点加入拓扑序列时,是否满足入度为0,若不满足则是错误的。选项ABC都满足该条件。在选项D中,输出结点2时,还存在一条(1,2)的边,不满足入度为0,因此错误。

3. 下图所示有向图的所有拓扑序列共有()个。🏷️Img_Lec1601
Img_Lec1601

A. 4
B. 6
C. 5
D. 7

答案及解析:C
本题的拓扑排序序列有:ABCDEFG, ABCFDEG, ABCFDEG, ABDCEFG, ABDCFEG,共5种。注:对于此类经典习题,应能熟练写出所有拓扑。

4. 【2014统考真题】对下图所示的有向图进行拓扑排序,得到的拓扑序列可能是() 🏷️Img_Lec1605

A. 3, 1, 2, 4, 5, 6
B. 3, 1, 2, 4, 6, 5
C. 3, 1, 4, 2, 5, 6
D. 3, 1, 4, 2, 6, 5

答案及解析:D
按照拓扑排序的规则,每次都选择入度为0的结点作为源点,并遍历到出度为0的终点结束。在本题中,源点为3,终点为5。此时,可以依次考查各个选项,在结点被访问时,是否入度已经变为0,若未变为0,则说明序列是非法的。对于选项A和B,访问结点2时,还存在一条边(4,2);对于选项C,访问结点5时,还存在一条边(6,5)。只有选项D是合法的。

5. 【2020统考真题】修改递归方式实现的图的深度优先搜索 (DFS) 算法,将输出(访问) 顶点信息的语句移到退出递归前(即执行输出语句后立刻退出递归)。采用修改后的算法遍历有向无环图 G, 若输出结果中包含G 中的全部顶点,则输出的顶点序列是G 的()。
A. 拓扑有序序列
B. 逆拓扑有序序列
C. 广度优先搜索序列
D. 深度优先搜索序列

答案及解析:B
在DFS算法中,若使用退栈输出打印顶点,则先入栈的结点必然在后入栈的结点访问完成之后才能输出。显然,这种操作是有序的,且属于逆拓扑排序。

【课堂互动16.4】关键路径 (AOE)

1. 若某带权图为 G = (V, E),其中 V = {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10},E = {<v1,v2>5, <v1, v3>6, <v2,v5>3, <v3,v5>6, <v3,v4>3, <v4, v5>3, <v4, v7>1, <v4, v8>4, <v5, v6>4, <v5, v7>2, <v6, v10>4, <v7, v9>5, <v8, v9>2, <v9, v10>2}(注:边括号外的数据表示边上的权值),则G的关键路径的长度为()。
A. 19
B. 20
C. 21
D. 22

答案及解析:C

  1. 根据题意可绘制出图G,🏷️Img_Lec1623
  2. 再根据上图分别计算出 Eearly,Elate,Aearly,AlateE_{early}, E_{late}, A_{early}, A_{late} 的值,即可获得关键活动和关键路径。
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
EearlyE_{early} 0 5 6 9 12 16 14 13 19 21
ElateE_{late} 0 9 6 9 12 17 14 17 19 21
<1,2> <1, 3> <2,5> <3,5> <3,4> <4,5> <4,7> <4,8> <5,6> <5,7> <6,10> <7,9> <8,9> <9,10>
weight 5 6 3 6 3 3 1 4 4 2 4 5 2 2
AearlyA_{early} 0 0 5 6 6 9 9 9 12 12 16 14 13 19
AlateA_{late} 4 0 9 6 6 9 13 13 13 12 17 14 17 19
时间余量 5 4 5 1 4 1 4 4 1 0 1 0 0 3
关键活动 - Y - Y Y Y - - - Y - Y - Y

由上表可得:
关键活动:<1,3>, <3,5>, <3,4>, <4,5>, <5,7>, <7,9>, <9,10>
关键路径(2条):1, 3, 5, 7, 9, 10 以及 1, 3, 4, 5, 7, 9, 10
两条路径的长度为:6+6+2+5+2=21。

2.下列关于关键路径的说法中,正确的是( )。
Ⅰ. 改变网上某一关键路径上的任意一个关键活动后,必将产生不同的关键路径
Ⅱ. 在AOE图中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少
Ⅲ. 缩短关键路径上任意一个关键活动的持续时间可缩短关键路径长度
Ⅳ. 缩短所有关键路径上共有的任意一个关键活动的持续时间可缩短关键路径长度
Ⅴ. 缩短多条关键路径上共有的任意一个关键活动的持续时间可缩短关键路径长度

A. Ⅱ和Ⅴ
B. Ⅰ、Ⅱ和Ⅳ
C. Ⅱ和Ⅳ
D. Ⅰ和Ⅳ

答案及解析:C
关键路径是一个项目中,从源点到汇点的所有路径中,总时长最长的一条路径。因此,在选项Ⅰ中,将某活动的时间延长,并不会改变原来的路径,并且整个工程总时间也会随之延长,因此选项Ⅰ是错误的,而0选项Ⅱ是正确的。然而,缩短某一条关键路径上的任意活动,或者一部分关键路径上的某共用活动只会导致该路径 长度缩短,但并不会导致整个工程的总时间缩短,因为,还存储其他未被缩减的关键路径,因此选项Ⅲ和Ⅴ都是错误的。对于选项Ⅳ来说,同时所有关键路径上的任意公共关键活动是可以缩短关键路径长度的,但也不能一味地缩短,当该长度比某个非关键路径还要短是,该路径就有可能会被更长的非关键路径所代替,因此选项Ⅳ是错误的(但注意只是可以缩减,而不是总是能缩减)。

3.【2019统考真题】用有向无环图描述表达式 (x+y)((x+y)/x),需要的顶点个数至少是()。 🏷️Img_Lec1624

A. 5
B. 6
C. 8
D. 9

答案及解析:A
首先,根据表达式构建一个二叉树;其次,将二叉树去重转换成图,即可获得最终结果。

4. 【2021统考真题】给定如下有向图,该图的拓扑有序序列的个数是()。 🏷️Img_Lec1611

A. 1
B. 2
C. 3
D. 4

答案及解析:A
对于本题给出的图,其拓扑有序序列的个数只有一个,即ABCDEF。

5.【2022统考真题】下图是一个有10个活动的AOE网,时间余量最大的活动是()。 🏷️Img_Lec1613

A. c
B. g
C. h
D. j

答案及解析:B
在AOE网中,时间余量最大的活动 = 结束顶点的最迟开始时间 - 开始顶点的最早开始时间 - 该活动的持续时间,或者 = AlateAearlyA_{late}-A{early}。如下根据关键路径算法计算这两个值可得:

1 2 3 4 5 6
EearlyE_{early} 0 2 5 8 9 12
ElateE_{late} 0 4 5 8 11 12
a b c d e f g h i j
weight 2 5 1 3 3 4 1 1 4 1
AearlyA_{early} 0 0 2 2 5 5 5 8 8 9
AlateA_{late} 2 0 4 5 5 7 11 10 8 11
时间余量 2 0 2 3 0 2 6 2 0 2
关键活动 - Y - - Y - - - Y -

根据上表,时间余量最长的是活动 g=6。

【扩展练习16】

1. 下面的()方法可以判断出一个有向图是否有环(回路)。
Ⅰ. 深度优先遍历
Ⅱ. 拓扑排序
Ⅲ. 求最短路径
Ⅳ. 求关键路径

A. Ⅰ、Ⅱ、Ⅳ
B. Ⅰ、Ⅲ、Ⅳ
C. Ⅰ、Ⅱ、Ⅲ
D. 全部可以

答案及解析:A
本题考察的是对多种算法的综合理解,具有一定的难度,并且此题有一定的歧义性。

2. 用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是()。
A. 逆拓扑有序
B. 拓扑有序
C. 无序的
D. 无法确定

答案及解析:A
在DFS算法中,若使用退栈输出打印顶点,则先入栈的结点必然在后入栈的结点访问完成之后才能输出。显然,这种操作是有序的,且属于逆拓扑排序。

3. 下列关于图的说法中,正确的是( )
Ⅰ. 有向图中顶点V的度等于其邻接矩阵中第V行中1的个数
Ⅱ. 无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵
Ⅲ. 在带权图G的最小生成树G₁中,某条边的权值可能会超过未选边的权值
IV. 若有向无环图的拓扑序列唯一,则可以唯一确定该图

A. Ⅰ、Ⅱ和Ⅲ
B. Ⅲ和IV
C. Ⅲ
D. IV

答案及解析:C
-选项I,在有向图中顶点V的度等于其邻接矩阵中第V行和第V列中所有1的个数,其中第V行标识该顶点出度,第V列标识该顶点的入度,该选项错误。

4. 以下关于拓扑排序的说法中,错误的是()。
Ⅰ. 若某有向图存在环路,则该有向图一定不存在拓扑排序
Ⅱ. 在拓扑排序算法中为暂存入度为零的顶点,可以使用栈,也可以使用队列
Ⅲ. 若有向图的拓扑有序序列唯一,则图中每个顶点的入度和出度最多为1

A.Ⅰ、Ⅲ
B.Ⅱ、Ⅲ
C.Ⅱ
D.Ⅲ

答案及解析:D
-选项Ⅰ,对于一个存在环路的有向图,在拓扑排序算法运行后,必然出现有环的子图,在此环中无法再找到入度为0的结点,拓扑排序也就进行不下去。选项A正确。
-选项Ⅱ,在拓扑排序中,若两个顶点的入度为0,说明这两个顶点之间没有先后顺序关系,因此无论先存储哪一个顶点都是可以的,因此使用栈和队列来存储入度为0的顶点是可行的,因此选项B正确。
-选项Ⅲ,若有向图的拓扑排序是唯一的,则每个顶点的入度和出度最多为1,该定义过于绝对。若某结点k分别包含来自于另外两个结点i和j的入度,而结点i和j又存在先后关系,当i和j都被输出后,结点k的入度也将变为0,此时可进行输出,因此该定义不正确(🏷️Img_Lec1621)。
Img_Lec1621

5. 下面关于求关键路径的说法中,不正确的是()。
A. 求关键路径是以拓扑排序为基础的
B. 一个事件的最早发生时间与以该事件为始的弧的活动的最早开始时间相同
C. 一个事件的最迟发生时间是以该事件为尾的弧的活动的最迟开始时间与该活动的持续时间的差
D. 关键活动一定位于关键路径上

答案及解析:C
选项ABD都是正确的。在选项C中,若事件只有一个出度与之关联,则ElateE_{late}等于以该事件为弧的活动的最迟开始时间与该活动持续时间之差,即:邻接点的权-关联边的权;若时间存在多个出度与之关联,则E_{late}$等于所有以该事件为弧的活动的最迟开始时间与该活动持续时间之差中最小的一个,即:min(所有(邻接点权-关联边))。

6. 下列AOE网表示一项包含8个活动的工程。通过同时加快若干活动的进度可以缩短整个工程的工期。下列选项中,加快其进度就可以缩短工期的是()。🏷️Img_Lec1604

A. c 和 e
B. d 和 c
C. f 和 d
D. f 和 h

答案及解析:C
根据题意可以获得AOE网的3个关键路径,分别是bdcg、bdeh和bfh,其长度都是27。根据定义,只有当所有关键路径的时间都减少时,才能减少工期。在选项ABD的活动中,并不是所有关键路径都包含,只有C中的活动f和d在三个关键路径中都存在。因此,加快f和d的进度能够缩短工期。(注意,在缩短关键路径工期的问题中,只需要确保活动的集合整体的缩短能影响到关键路径即可,而并不要求活动集合中的每一个活动都包含在关键路径中。

7. 【2019统考真题】下图所示的AOE网表示一项包含8个活动的工程。活动d的最早开始时间和最迟开始时间分别是()。 🏷️Img_Lec1609

A. 3和7
B. 12和12
C. 12和14
D. 15和15

答案及解析:C
本题计算的两个值分别是 AearlyA_{early}AlateA_{late}。其中,Aearly=Eearly=12A_{early}=E_{early}=12Alate=A4lated=(A6lateg)dA_{late} = A4_{late} - d = (A6_{late}-g)-d,A6是图中关键路径的长度,对于不复杂的选择题,可以直接计算其长度,此处等于27。因此,Alate=2776=14A_{late}=27-7-6=14。选项C正确。

下面给出,按照常规方法计算关键路径的方法:

1 2 3 4 5 6
EearlyE_{early} 0 12 8 19 18 27
ElateE_{late} 0 12 8 21 18 27
a b c d e f g h
weight 3 4 8 7 6 10 6 9
AearlyA_{early} 0 8 0 12 12 8 19 18
AlateA_{late} 9 8 0 14 12 8 21 18
时间余量 9 0 0 2 0 0 2 0
关键活动 - Y Y - Y Y - Y

由上表可得活动d的最早开始时间为12,最迟开始时间为14。

8. 若一个有向图具有有序的拓扑排序序列,则它的邻接矩阵必定为()
A. 对称
B. 稀疏
C. 三角
D. 一般

答案及解析:C
拓扑排序是针对有向无环图(DAG)的一种算法,它将DAG的所有顶点排列成一个线性序列,使得对任何的有向边 (u, v),u都排在v的前面。此时,不妨将所有顶点按照有序序列进行从小到大的顺序排列,然后再排序后的序列构建邻接矩阵,该邻接矩阵必定是三角矩阵。

9.【2012统考真题】若用邻接矩阵存储有向图,矩阵中主对角线以下的元素均为零,则关于该图拓扑序列的结论是()。
A. 存在,且唯一
B. 存在,且不唯一
C. 存在,可能不唯一
D. 无法确定是否存在

答案及解析:C
对角线以下的元素均为零,说明只可能存在从顶点i到顶点j(i<j)的边,即该图一定是一个有向无环图,因此拓扑排序必定存在。此时,若存在指向同一个结点的多条边,则可能会存在不唯一的拓扑。

第16讲 图的应用 课堂互动 隐藏答案 | 返回首页