图结构习题.docx
《图结构习题.docx》由会员分享,可在线阅读,更多相关《图结构习题.docx(23页珍藏版)》请在冰豆网上搜索。
![图结构习题.docx](https://file1.bdocx.com/fileroot1/2022-11/18/81e1eb6d-bf60-4a57-a1e9-7930b5930d99/81e1eb6d-bf60-4a57-a1e9-7930b5930d991.gif)
图结构习题
图结构习题
第6章图
【例6-3】已知一个无向图的邻接表如图6-5所示,要求:
(1)画出该无向图;
(2)根据邻接表,分别写出用DFS(深度优先搜索)和BFS(广度优先搜索)算法从顶点V0开始遍历该图后所得到的遍历序列。
图6-5图的邻接表存储
V6
V0
V1
V5
V3
V4
V2
2
3
0
5
6
0
4
3
6
1
1
∧
2
∧
1
∧
2
1
0
2
5
0
∧
6
∧
3
∧
4
∧
解:
(1)该无向图如图6-6所示。
v0
v1
v2
v3
v4
v6
v5
图6-6无向图
(2)根据该无向图的邻接表表示,从顶点V0开始的深度优先遍历序列为:
V0、V2、V3、V1、V4、V6、V5。
广度优先遍历序列为V0、V2、V5、V6、V1、V3、V4。
从图的逻辑结构上来讲,从图中某个顶点开始的深度(或广度)优先遍历序列不一定是唯一的。
这是因为在逻辑结构中,并没有对每个顶点的所有邻接点规定它们之间的先后顺序,这样在搜索算法中选取第—个邻接点和下一个邻接点时可能会有不同的结果。
但是在存储结构中,明确地给出了邻接点的先后顺序,这时深度优先和广度优先遍历序列就是唯一的。
【例6-4】对于如图6-8所示的带权无向图,用图示说明:
(1)利用Prim算法从顶点a开始构造最小生成树的过程;
3
e
1
f
d
c
b
a
g
9
7
9
4
6
2
1
8
5
4
8
图6-8带权无向图
(2)利用Kruskal算法构造最小生成树的过程;
解:
(1)利用Prim算法从顶点a开始构造最小生成树的过程如图6-9所示。
a
d
2
3
3
a
d
2
3
a
d
2
(2)利用Kruskal算法构造最小生成树的过程如图6-10所示。
a
e
f
d
c
b
g
初始状态
a
e
f
d
c
b
g
增加第2条边
1
1
a
e
f
d
c
b
g
增加第1条边
1
3
a
e
f
d
c
b
g
增加第5条边
2
1
4
1
3
a
e
f
d
c
b
g
增加第4条边
2
1
1
a
e
f
d
c
b
g
增加第3条边
2
1
1
习题6
一、单项选择题
1.在具有n个顶点的有向图中,若所有顶点的出度之和为s,则所有顶点的入度之和为(A)。
A.sB.s-1C.s+1D.n
2.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的度数之和为( D)。
A.sB.s-1C.s+1D.2s
3.在一个具有n个顶点的无向图中,若具有e条边,则所有顶点的度数之和为(D)。
A.nB.eC.n+eD.2e
4.在一个具有n个顶点的无向完全图中,所含的边数为(C)。
A.nB.n(n-1)C.n(n-1)/2D.n(n+1)/2
5.在一个具有n个顶点的有向完全图中,所含的边数为(B)。
A.nB.n(n-1)C.n(n-1)/2D.n(n+1)/2
6.在一个无向图中,若两顶点之间的路径长度为k,则该路径上的顶点数为(B)。
A.kB.k+1C.k+2D.2k
7.对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为(B)。
A.0B.1C.nD.n+1
8.若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用(A)次深度优先搜索遍历的算法。
A.kB.1C.k-1D.k+1
9.若要把n个顶点连接为一个连通图,则至少需要(AC)条边。
A.nB.n+1C.n-1D.2n
10.在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为(CD)。
A.nB.n⨯eC.eD.2⨯e
11.在一个具有n个顶点和e条边的有向图的邻接矩阵中,表示边存在的元素个数为(C)。
A.nB.n⨯eC.eD.2⨯e
12.在一个具有n个顶点和e条边的无向图的邻接表中,边结点的个数为(D)。
A.nB.n⨯eC.eD.2⨯e
13.在一个具有n个顶点和e条边的有向图的邻接表中,保存顶点单链表的表头指针向量的大小至少为(A)。
A.nB.2nC.eD.2e
14.在一个无权图的邻接表表示中,每个边结点至少包含(B)域。
A.1B.2C.3D.4
15.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应邻接表中该顶点单链表中的边结点数为(B)。
A.k1B.k2C.k1-k2D.k1+k2
16.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应逆邻接表中该顶点单链表中的边结点数为(C)。
A.k1B.k2C.k1-k2D.k1+k2
17.对于一个无向图,下面(BA)种说法是正确的。
A.每个顶点的入度等于出度B.每个顶点的度等于其入度与出度之和
C.每个顶点的入度为0D.每个顶点的出度为0
18.在一个有向图的邻接表中,每个顶点单链表中结点的个数等于该顶点的(DA)。
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,EB.A,C,F,D,E,B
C.A,B,D,C,F,ED.A,B,D,F,E,C
20.若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能为(AD)。
A.A,B,C,D,E,FB.A,B,C,F,D,E
C.A,B,D,C,E,FD.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,3B.1,2,3,4,5
C.1,2,5,3,4D.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,5B.1,2,4,3,5
C.1,2,4,5,3D.1,4,2,5,3
23.由一个具有n个顶点的连通图生成的最小生成树中,具有(B)条边。
A.nB.n-1C.n+1D.2⨯n
24.已知一个有向图的边集为{,,,,,},则由该图产生的一种可能的拓扑序列为(A)。
A.a,b,c,d,eB.a,b,d,e,bC.a,c,b,e,dD.a,c,d,b,e
二、填空题
1.在一个图中,所有顶点的度数之和等于所有边数的___2____倍。
2.在一个具有n个顶点的无向完全图中,包含有____n(n-1)/2__条边,在一个具有n个顶点的有向完全图中,包含有__n(n-1)___条边。
3.假定一个有向图的顶点集为{a,b,c,d,e,f},边集为{,,,,,},则出度为0的顶点个数为__2___,入度为1的顶点个数为__6____。
4.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要__n_N-1__条边。
5.表示图的两种存储结构为___顺序____和____链式______。
邻接表和邻接矩阵
6.在一个连通图中存在着___1__个连通分量。
7.图中的一条路径长度为k,该路径所含的顶点数为___k+1___。
8.若一个图的顶点集为{a,b,c,d,e,f},边集为{(a,b),(a,c),(b,c),(d,e)},则该图含有__3_____个连通分量。
9.对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小至少为___n___⨯___n___。
10.对于具有n个顶点和e条边的有向图和无向图,在它们对应的邻接表中,所含边结点的个数分别为___2e_和__e____。
11.在有向图的邻接表和逆邻接表表示中,每个顶点邻接表分别链接着该顶点的所有____出边__和___入边___结点。
12.对于一个具有n个顶点和e条边的无向图,当分别采用邻接矩阵和邻接表表示时,求任一顶点度数的时间复杂度分别为____O(ne)O(n)__和___O(n^2)O(e/n)_。
O(n^2),O(e)
13.假定一个图具有n个顶点和e条边,则采用邻接矩阵和邻接表表示时,其相应的空间复杂度分别为_____O(n^2)___和___O(n+e)_____。
14.一个图的边集为{(a,c),(a,e),(b,e),(c,d),(d,e)},从顶点a出发进行深度优先搜索遍历得到的顶点序列为___acdeb____,从顶点a出发进行广度优先搜索遍历得到的顶点序列为____________。
15.一个图的边集为{,,,,,},从顶点a出发进行深度优先搜索遍历得到的顶点序列为____________,从顶点a出发进行广度优先