2009年
【2009年题7】 下列关于无向连通图特性的叙述中,正确的是______。
I. 所有顶点的度之和为偶数
II. 边数大于顶点个数减 1
III. 至少有一个顶点的度为 1
A. 只有 I B. 只有 II C. I 和 II D. I 和 III
解析:
每条边都连接了两个结点,在计算顶点的度之和时每条边都被计算了两次(出度和入度),故所有顶点的度之和为边数的两倍,I 正确。n n n 个顶点、n − 1 n-1 n − 1 条边可以构成无向连通图,比如树,II 错误。顶点数为 N N N (N ⩾ 1 N \geqslant 1 N ⩾ 1 )的无向完全图中不存在度为 1 的顶点,III 错误。
2010年
【2010年题7】 若无向图 G = (V, E) 中含有 7 个顶点,要保证图 G 在任何情况下都是连通的,则需要的边数最少是______。
A. 6 B. 15 C. 16 D. 21
解析: 要保证无向图 G 在任何情况下都是连通的,即任意变动图 G 中的边,G 始终保持连通。首先考虑极限不连通情况:6 个顶点构成完全连通子图 G1,需 条边,此时第 7 个顶点为孤立点;然后再添加一条边将第 7 个节点与 G1 连接起来,图必连通,共需 16 条边。
n ( n − 1 ) / 2 = 6 × ( 6 − 1 ) / 2 = 15 n(n-1)/2 = 6\times(6-1)/2 = 15 n ( n − 1 ) /2 = 6 × ( 6 − 1 ) /2 = 15
【2010年题8】 对右图进行拓扑排序,可以得到不同的拓扑序列的个数是______。
入度为 0 的顶点只有 a,首先输出 a。
去掉 a 后,入度为 0 的顶点有 b 和 e:
若先输出 e,剩下的入度为 0 的顶点只有 b,输出 b;随后只能依次输出 c、d,得到序列:aebcd 。
若先输出 b,入度为 0 的顶点有 c 和 e:
选择输出 e,随后依次输出 c、d,得到序列:abecd ;
选择输出 c,随后依次输出 e、d,得到序列:abced 。
综上所述,可以得到 3 个不同的拓扑序列,分别为 aebcd、abecd、abced。
2011年 【2011年题8】 下列关于图的叙述中,正确的是________。
III. 若有向图中存在拓扑序列,则该图不存在回路
A. 仅 II B. 仅 I、II C. 仅 III D. 仅 I、III
第一个顶点和最后一个顶点相同的路径称为回路;序列中顶点不重复出现的路径称为简单路径;回路显然不是简单路径,故 I 错误;稀疏图是边比较少的情况,此时用邻接矩阵的空间复杂度为 O ( n 2 ) O(n^2) O ( n 2 ) ,必将浪费大量的空间,而邻接表的空间复杂度为 O ( n + e ) O(n+e) O ( n + e ) ,应该选用邻接表,故 II 错误。存在回路的有向图不存在拓扑序列,若拓扑排序输出结束后所余下的顶点都有前驱,则说明只得到了部分顶点的拓扑有序序列,图中存在回路,故 III 正确。
2012年 【2012年题5】 对有 n n n 个结点、e e e 条边且使用邻接表存储的有向图进行广度优先遍历,其算法时间复杂度是________。
A. O(n) B. O(e) C. O(n + e) D. O(ne)
广度优先遍历需要借助队列实现。邻接表的结构包括:顶点表;边表(有向图为出边表)。当采用邻接表存储方式时,在对图进行广度优先遍历时每个顶点均需入队一次(顶点表遍历),故时间复杂度为 O(n),在搜索所有顶点的邻接点的过程中,每条边至少访问一次(出边表遍历),故时间复杂度为 O(e),算法总的时间复杂度为 O(n + e)。
【2012年题6】 若用邻接矩阵存储有向图,矩阵中主对角线以下的元素均为零,则关于该图拓扑序列的结论是________。
A. 存在,且唯一 B. 存在,且不唯一 C. 存在,可能不唯一 D. 无法确定是否存在
对角线以下元素均为零,表明只有顶点 i i i 到顶点 j ( i < j ) j\ (i<j) j ( i < j ) 可能有边,而顶点 j j j 到顶点 i i i 一定没有边,即有向图是一个无环图,因此一定存在拓扑序列。对于拓扑序列是否唯一,试举一例:
设有向图的邻接矩阵 [ 0 1 1 0 0 0 0 0 0 ] \begin{bmatrix} 0 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} 0 0 0 1 0 ,则存在两个拓扑序列,因此该图存在可能不唯一的拓扑序列。
结论:对于任一有向图,如果它的邻接矩阵中对角线以下(或以上)的元素均为零,则存在拓扑序列(可能不唯一)。反之,若图存在拓扑序列,却不一定能满足邻接矩阵中主对角线以下的元素均为零,但是可以通过适当调整结点编号,使其邻接矩阵满足前述性质。
【2012年题7】 如右图所示的有向带权图,若采用迪杰斯特拉(Dijkstra)算法求从源点 a 到其他各顶点的最短路径,则得到的第一条最短路径的目标顶点是 b,第二条最短路径的目标顶点是 c,后续得到的其余各最短路径的目标顶点依次是________。
A. d, e, f B. e, d, f C. f, d, e D. f, e, d
【排除法】对于 A,若下一个顶点为 d,路径 a, b, d 的长度 5,而 a, b, c, f 的长度仅为 4,显然错误。同理可以排除 B。将 f 加入集合 S 后,采用上述的方法也可以排除 D。
【2012年题8】 下列关于最小生成树的叙述中,正确的是________。
II. 所有权值最小的边一定会出现在所有的最小生成树中
III. 使用普里姆(Prim)算法从不同顶点开始得到的最小生成树一定相同
IV. 使用普里姆算法和克鲁斯卡尔(Kruskal)算法得到的最小生成树总不相同
A. 仅 I B. 仅 II C. 仅 I、III D. 仅 II、IV
对于 I,最小生成树的树形可能不唯一(这是因为可能存在权值相同的边),但是代价一定是唯一的,I 正确。对于 II,如果权值最小的边有多条并且构成环状,则总有权值最小的边将不出现在某棵最小生成树中,II 错误。对于 III,设 N N N 个结点构成环,N − 1 N - 1 N − 1 条边权值相等,则从不同的顶点开始普里姆算法会得到 N − 1 N - 1 N − 1 中不同的最小生成树,III 错误。对于 IV,当最小生成树唯一时(各边的权值不同),Prim 算法和 Kruskal 算法得到的最小生成树相同,IV 错误。
2013年 【2013年题7】 设图的邻接矩阵 A A A 如下所示。各顶点的度依次是________。
A = [ 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 ] A = \begin{bmatrix} 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 \end{bmatrix} A = 0
A. 1, 2, 1, 2 B. 2, 2, 1, 1 C. 3, 4, 2, 3 D. 4, 4, 2, 2
邻接矩阵 A 为非对称矩阵,说明图是有向图,度为入度加出度之和。各顶点的度是矩阵中此结点对应的行(对应出度)和列(对应入度)的非零元素之和。
【2013年题8】 若对如下无向图进行遍历,则下列选项中,不是广度优先遍历序列的是________。
A. h, c, a, b, d, e, g, f B. e, a, f, g, b, h, c, d
C. d, b, c, a, h, e, f, g D. a, b, c, d, h, e, f, g
此题为送分题。只要掌握 DFS 和 BFS 的遍历过程,便能轻易解决。逐个代入,手工模拟,选项 D 是深度优先遍历,而不是广度优先遍历。
【2013年题9】 下列 AOE 网表示一项包含 8 个活动的工程。通过同时加快若干活动的进度可以缩短整个工程的工期。下列选项中,加快其进度就可以缩短工程工期的是________。
A. c 和 e B. d 和 c C. f 和 d D. f 和 h
找出 AOE 网的全部关键路径为(b, d, c, g)、(b, d, e, h)和(b, f, h)。根据定义,只有关键路径上的活动时间同时减少时,才能缩短工期,即正确选项中的两条路径必须涵盖在所有关键路径之中。利用关键路径算法可求出图中的关键路径共有三条:(b, d, c, g)、(b, d, e, h)和(b, f, h)。由此可知,选项 A 和 B 中并不能包含(b, f, h)这条路径,选项 C 中,并不能包含(b, d, c, g)和(b, d, e, h)这两条路径,只有 C 包含了所有的关键路径,因此只有加快 f 和 d 的进度才能缩短工期
2014年 【2014年题7】 对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是________。
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
按照拓扑排序的算法,每次都选择入度为 0 的结点从图中删去,此图中一开始只有结点 3 的入度为 0;删掉结点 3 后,只有结点 1 的入度为 0;删掉结点 1 后,只有结点 4 的入度为 0;删掉结点 4 后,结点 2 和结点 6 的入度都为 0,此时选择删去不同的结点,会得出不同的拓扑序列,分别处理完毕后可知可能的拓扑序列为 3, 1, 4, 2, 6, 5 和 3, 1, 4, 6, 2, 5,选 D。
2017 【2017年题7】 已知无向图 G 含有 16 条边,其中度为 4 的顶点个数为 3,度为 3 的顶点个数为 4,其他顶点的度均小于 3。图 G 所含的顶点个数至少是______。
无向图边数的两倍等于各顶点度数的总和。由于其他顶点的度均小于 3,可以设它们的度都为 2,设它们的数量是 x x x ,可列出方程 4 × 3 + 3 × 4 + 2 x = 16 × 2 4 \times 3 + 3 \times 4 + 2x = 16 \times 2 4 × 3 + 3 × 4 + 2 x = 16 × 2 ,解得 x = 3 x = 3 x = 。 ,B 正确。
心得笔记
09年连通图的相关概念经常搞忘记掉。一个图有两个不相连的部分,不是连通图
度数和边数的关系没掌握。
邻接矩阵:每行代表一个顶点与其它各个顶点邻接的情况。不对称的邻接矩阵一定是有向图
邻接表:^ 表示空指针 NULL,链表结点之间没有边。
邻接表用链表有毛用!就应该用动态数组。。。看得烦得很
邻接表的边结点到底是啥
完全图的边数搞不清楚
图的广度优先的时间复杂度搞不清楚
图的 BFS:出队一个元素,访问其邻接点并入队,再将队头元素出队,循环往复。
存在连通图的情况:外侧循环用于遍历所有非连通图。
MST 性质搞不清楚
普里姆算法:划分阵营,小心发展。时间复杂度和边数无关,适合处理稀疏图
拓扑排可以用来判断有向图是否存在环,并给出任务的可行执行先后顺序。 拓扑排序判断图中有无环的原理:拓扑排序只处理入度为0的点,环内所有顶点入度永远不为0,无法被选出,统计到的顶点数量就会变少。操作完了剩下的定点,说明所有结点入度不为零,而入度有必然来自其它结点的出度,必然是环。
拓扑排序的算法实现搞不清楚,主要是对图的邻接表存储结构又不熟悉了。
确定关键路径的过程搞不清楚
拓扑排序的结果满足?
邻接矩阵下三角全为0的图,无环,拓扑序列存在
关键路径上的点,就是没有余地延迟的点,一旦延迟,就会导致整个项目延迟
迪杰斯特拉算法 每次更新一次set,确定到一个顶点的最短路径,但事先不知道这一轮确定的是到哪个定点的最短路径,可能要直到所有顶点确定完,才能出结果
0
1 0 0
0
0
1
1 0 1 0
0 1 0 0
1 1 0 0
3
4 + 3 + 3 = 11 4 + 3 + 3 = 11 4 + 3 + 3 = 11 花野猫的班级毕业蹭饭地图制作工具概要设计 更新于2026-10-23
Dors Dors 是花野猫开发为知识工作者打造的数字花园应用,包含的博客、个人记事本、及其他实用功能。