图结构习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例6-3】已知一个无向图的邻接表如图 6-5所示,要求:
(1) 画出该无向图;
(2) 根据邻接表,分别写出用 DFS 深度优先搜索)和BFS (广度优先搜索)算法从顶点 V0开始遍历该图后所得到的遍历序列。
(2)根据该无向图的邻接表表示,从顶点 V0开始的深度优先遍历序列为: VO 、
V2、
V3、VI 、V4、V6、V5。广度优先遍历序列为 VO 、V2、V5、V6、VI 、V3、V4。
从图的逻辑结构上来讲,从图中某个顶点开始的深度
(或广度)优先遍历序列不一定是
唯
一的。这是因为在逻辑结构中,并没有对每个顶点的所有邻接点规定它们之间的先后顺序, 这样在搜索算法中选取第一个邻接点和下一个邻接点时可能会有不同的结果。 但是在存储结
构中,明确地给出了邻接点的先后顺序,这时深度优先和广度优先遍历序列就是唯一的。
【例6-4】对于如图6-8所示的带权无向图,用图示说明:
(1) 利用Prim 算法从顶点a 开始构造最小生成树的过程; (2) 利用Kruskal 算法构造最小生成树的过程;
解:
(1)该无向图如图
6-6所示。
图6-5图的邻接表存储
i
初始状态 增加第1条边 增加第2条边
解:
(1)利用Prim 算法从顶点a 开始构造最小生成树的过程如图 6-9所
示。 a
初始状态
图6-9用Prim 算法构造最小生成树的过程
(2)利用Kruskal 算法构造最小生成树的过程如图
连通d
连通f
连通c
'd'
6-10所示。
习题6
一、单项选择题 1.
在具有n 个顶点的有向图中, 若所有顶点的出度之和为 s ,则所有
顶点的入度之和为(A )。
A. s
B. s-1
C. s+1
D. n
2•在一个具有n 个顶点的有向图中,若所有顶点的出度数之和为
s,则所有顶点的度数之和
为(D)。
A. s
B. s-1
C. s+1
D. 2s
3.
在一个具有n 个顶点的无向图中,若具有 e 条边,则所有顶点的度数之和为
(D )。
A. n
B. e
C. n+e
D. 2e
4. 在一个具有n 个顶点的无向完全图中,所含的边数为 (C )。
A. n
B. n(n-1)
C. n(n-1)/2
D. n(n+1)/2
5. 在一个具有n 个顶点的有向完全图中,所含的边数为 (B )。
A. n
B. n(n-1)
C. n(n-1)/2
D. n(n +1)/2
6. 在一个无向图中,若两顶点之间的路径长度为
k ,则该路径上的顶点数为(B )。
A. k
B.k+1
C. k+2
D. 2k
7.
对于一个具有n 个顶点
的无向连通图,它包含的连通分量的个数为
(B )。
A. 0
B. 1
C. n
D. n+1
增加第3条边
3 '■ 2 ------------------- 〔c
3
1 b
〕c
增加第5条边
图 6-10
增加第4条边
用Kruskal 算法构造最小生成树的过程
8. 若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用(A)次深度优先搜索遍历的算法。
A. k
B. 1
C. k-1
D. k+1
18. 在一个有向图的邻接表中,每个顶点单链表中结点的个数等于该顶点的
A. 出边数
B. 入边数
C. 度数
D. 度数减 1
19. 若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)}则从顶点A 开始对该图进行深 度优先搜索,得到的顶点序列可能为 ( DB )。
A. A,B,C,F,D,E
B. A,C,F,D,E,B
C. A,B,D,C,F,E
D. A,B,D,F,E,C
20. 若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)}则从顶点A 开始对该图进行广 度
优先搜索,得到的顶点序列可能为
A. A,B,C,D,E,F
B. A,B,C,F,D,E
C. A,B,D,C,E,F
D. A,C,B,F,D,E 21. 若一个图的边集为 {<1,2>,<1,4>,<2,5>,<3,1>,<3,5>,<4,3>},则从顶点 1 开始对该图进
行深度优先搜索,得到的顶点序列可能为
(
A )。
A. 1,2,5,4,3
B. 1,2,3,4,5
C. 1,2,5,3,4
D. 1,4,3,2,5 22. 若一个图的边集为 {<1,2>,<1,4>,<2,5>,<3,1>,<3,5>,<4,3>},则从顶点 1 开始对该图进
行广度优先搜索,得到的顶点序列可能为
(
AC ).
A. 1,2,3,4,5
B. 1,2,4,3,5
C. 1,2,4,5,3
D. 1,4,2,5,3
23. 由一个具有 n 个顶点的连通图生成的最小生成树中,具有
( B )条边。
A. n
B. n-1
C. n+1
D. 2?n
9. 若要把 n 个顶点连接为一个连通图,则至少需要
A. n
10. 在一个具有 有效元素)的个数为
A. n
11. 在一个具有
(
C )。
A. n
12. 在一个具有 A. n
13. 在一个具有
( AC )条边。
B. n+1
C. n-1
D. 2n
n 个顶点和e 条边的无向图的邻接矩阵中, 表示边存在的元素 (又称为
( C D )。
B. n?e n 个顶点和 e
C. e
D. 2?e
条边的有向图的邻接矩阵中,表示边存在的元素个数为
C. e
D. 2?e n 个顶点和e 条边的无向图的邻接表中, B. n?e C. e n 个顶点和e 条边的有向图的邻接表中, B. n?e
( D )。
边结点的个数为 D. 2?e
保存顶点单链表的表头指针向
量的大小至少为 ( A )。
A. n
B. 2n
C. e
14. 在一个无权图的邻接表表示中,每个边结点至少包含
D. 4 D. 2e ( B )域。
A. 1
B. 2
C. 3 15. 对于一个有向图,若一个顶点的度为
k1, 表中的边结点数为 ( B )。
A. k1
B. k2
C. k1-k2 16. 对于一个有向图,若一个顶点的度为
k1, 链表中的边结点数为 ( C )。
A. k1
B. k2
17. 对于一个无向图,下面 ( BA
A. 每个顶点的入度等于出度 出度为k2,则对应邻接表中该顶点单链
D. k1+k2
出度为k2,则对应 逆邻接表中该顶点单 C. k1-k2 )种说法是正确的。
B. 每个顶点的度等于其入度与出度之和
D. 每个顶点的出度为 0
D. k1+k2 ( D A )。
( A D) 。