数据结构-图

选择题

1.在一个图中,所有顶点的度数之和等于图的边数的(   )倍。

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

答案:C

2.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(   )倍。

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

答案:B 解释:有向图所有顶点入度之和等于所有顶点出度之和。

3.具有n个顶点的有向图最多有(   )条边。  

A.n              B.n(n-1)         C.n(n+1)        D.n2 

答案:B 解释:有向图的边有方向之分,即为从n个顶点中选取2个顶点有序排列,结果为n(n-1)。可举例子看出来  

4.n个顶点的连通图用邻接距阵表示时,该距阵至少有(   )个非零元素。

A.n              B.2(n-1)         C.n/2           D.n2 

答案:B  解释 所谓连通图一定是无向图,有向的叫做强连通图 连通n个顶点,至少只需要n-1条边就可以了,或者说就是生成树 由于无向图的每条边同时关联两个顶点,因此邻接矩阵中每条边被存储了两次(也就是说是对称矩阵),因此至少有2(n-1)个非零元素(看课本生成树的概念)

5.G是一个非连通无向图,共有28条边,则该图至少有(   )个顶点。

A.7              B.8             C.9             D.10 

答案:C 解释:8个顶点的无向图最多有8*7/2=28条边,再添加一个点即构成非连通无向图,故至少有9个顶点。

6.若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是(   )图。

A.非连通         B.连通          C.强连通        D.有向

答案:B 解释:即从该无向图任意一个顶点出发有到各个顶点的路径,所以该无向图是连通图。
 

7.下面( )算法适合构造一个稠密图G的最小生成树。

A. Prim算法      B.Kruskal算法   C.Floyd算法     D.Dijkstra算法

答案:A 解释:Prim算法适合构造一个稠密图G的最小生成树,Kruskal算法适合构造一个稀疏图G的最小生成树。
 

8.用邻接表表示图进行广度优先遍历时,通常借助(   )来实现算法。

A.栈            B. 队列            C.  树            D.图

答案:B 解释:广度优先遍历通常借助队列来实现算法,深度优先遍历通常借助栈来实现算法。

9.用邻接表表示图进行深度优先遍历时,通常借助(   )来实现算法。

A.栈            B. 队列            C.  树            D.图

答案:A 解释:广度优先遍历通常借助队列来实现算法,深度优先遍历通常借助栈来实现算法。

10.深度优先遍历类似于二叉树的(   )。

A.先序遍历      B.中序遍历        C.后序遍历      D.层次遍历

答案:A 深度优先遍历是先序遍历,广度优先遍历是层次遍历

如下图所示,用图的邻接表来存储图,进行深度优先遍历;与对这幅图(二叉树)进行先序遍历的序列是类似的,只不过是左右子树谁先开始遍历的区别。

11.广度优先遍历类似于二叉树的(   )。

A.先序遍历      B.中序遍历        C.后序遍历       D.层次遍历

答案:D

12.图的BFS生成树的树高比DFS生成树的树高(   )。

A.小            B.相等            C.小或相等       D.大或相等

答案:C 解释:对于一些特殊的图,比如只有一个顶点的图,其BFS生成树的树高和DFS生成树的树高相等。一般的图,根据图的BFS生成树和DFS树的算法思想,BFS生成树的树高比DFS生成树的树高小。
 

13.已知图的邻接矩阵,则从顶点 0 出发按深度优先遍历的结点序列是()

数据结构-图_第1张图片

 答案C 直接先画图在看选项 数据结构-图_第2张图片

14.已知图的邻接表如图6.31所示,则从顶点v0出发按广度优先遍历的结果是(    ),按深度优先遍历的结果是(    )。

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

 答案 D 从v0开始,第一个没遍历过的点是v1,然后看v1,第一个是v2,到v2,第一个是v3,到v3。总结即为:v0,v1,v2,v3

15.下面(   )方法可以判断出一个有向图是否有环。

A.深度优先遍历      B.拓扑排序      C.求最短路径     D.求关键路径

答案:B

16.如果具有n个顶点的图恰好是一个环,则它有( )棵生成树。

A. n-1

B. n

C. n+1

D. 2n

答案 B 因为n个顶点构成的环共有n条边,去掉其中任意一条便是一棵生成树,所以共有n种情况(如3个顶点构成的环有3条边,随便去掉一条就是一棵生成树)

17.若一个具有n个顶点和e条边的无向图是一个森林(n>e),则该森林必有( )棵树。

A. e

B. n

C. n-e

D. 1

答案 C n-e
解析
如果某棵树中有N0个结点,K0条边,则N0 = k0 + 1
设森林中有m棵树,其结点数分别为n1,n2,n3,.,nm
相应地,各棵树的边数分别为k1,k2,k3,...km
显然:n1 = k1 + 1,n2 = k2 + 1,.,nm = km + 1 (1)
按照题设:
n1 + n2 + n3 +.+ nm = N (2)
k1 + k2 + k3 +.+ km = e (3)
将(1) 代入(2) 得:
(k1 + 1) + (k2 + 1) + (k3 + 1) + .+ (km + 1) = N
即:
k1 + k2 + k3 + ...+ km + 1 + 1 +.+ 1 = N
按照(3):
e+ m= N
于是m = N - e

18.在一个图中,每个顶点的前趋顶点和后继顶点数可以有( )。

A. 1个

B. 2个

C. 任意多个

D. 0个

答案 C (图中顶点之间是多对多的相邻关系。)

19.在一个具有n个顶点的无向连通图中至少有( )条边。

A. n

B. n+l

C. n-1

D. n/2

答案 C n-1 (生成树图是边数最少的连通图,其边数=n-1。)

20.一个图的邻接矩阵是对称矩阵,则该图一定是______。

A. 无向图

B. 有向图

C. 无向图或有向图

D. 以上都不对

答案   A. 无向图 (有向图不一定是对称的,如果是双向图那就是对称的)(如觉得不对请下方留言告知,谢谢啦)

21.一个具有n(n≥1)个顶点的有向图,其强连通分量个数最少有______ 个。

A. 0

B. 1

C. n-1

D. n

答案 B 1解析:所有顶点连通为一个。

22.一个具有n(n≥1)个顶点的图,最多有 ______个连通分量。

A. 0

B. 1

C. n-1

D. n

答案 D n  每一个都是连通分量

23.一个有n个顶点的无向图,其中边数大于n-1,则该图必是______。

A. 完全图

B. 连通图

C. 非连通图

D. 以上都不对

答案 B. 连通图

24.在一个具有n个顶点的有向图中,构成强连通图时至少有______ 条边。

A. n

B. n+l

C. n-1

D. n/2

答案 A. n  举例子如3个点

25.在一个具有n个顶点的无向连通图中至少有______ 条边。

A. n

B. n+l

C. n-1

D. n/2

答案C n-1(连通图的生成树)

26.一个图的邻接矩阵不是对称矩阵,则该图可能是______。

A. 无向图

B. 有向图

C. 无向图或有向图

D. 以上都不对

答案 B. 有向图(无向图一定是对称的,有向图可能是对称的,如双向图)

27.对于包含n个顶点,e条边的无向图,采用邻接矩阵存储,则矩阵中零元素的个数为

n²-2e 无向图的邻接矩阵中,矩阵大小为n²,非零元素的个数为2e,故零元素的个数为n²-2e。

28.对于一个具有n个顶点e条边的不带权无向图,若采用邻接矩阵表示,其中非零元素个数是______。

A. n

B. 2n

C. e

D. 2e

答案 D. 2e

29.用邻接表存储图所用的空间大小______。

A. 与图的顶点和边数有关

B. 只与图的边数有关

C. 只与图的顶点数有关

D. 与边数的平方有关

答案 A. 与图的顶点和边数有关

30.在有向图的邻接表表示中,顶点v的边单链表中结点个数等于______。

A. 顶点v的度

B. 顶点v的出度

C. 顶点v的入度

D. 依附于顶点v的边数

答案 B. 顶点v的出度

31.在有向图的邻接表表示中,顶点v在边单链表中出现的次数是______。

A. 顶点v的度

B. 顶点v的出度

C. 顶点v的入度

D. 依附于顶点v的边数

答案 C. 顶点v的入度数据结构-图_第3张图片

32.给定一个有向图的邻接表如下图,则该图有__个强连通分量。
在这里插入图片描述

A.4 {{0, 1, 5}, {2}, {3}, {4}}
B.3 {{2}, {4}, {0, 1, 3, 5}}
C.1 {0, 1, 2, 3, 4, 5}
D.1 {0, 5, 1, 3}

答案 B (根据邻接表画出图可发现0 1 3 5既有出度也有入度,但是2 4 只有出度 ,也就是说0 1 3 5 可以任意两个点到达,但是和2 4 联立 也无法和2 4 相互到达, 因此 2  4也无法两个互相到达,所以为3个强连通分量)此方法关于出度入读说明是辅助理解,不是说看出度和入度判断,还是看能不能互相到达,如下文的34题,发现3也只有出度没有入度 但是强连通分量只有2个

数据结构-图_第4张图片

33.给定有向图的邻接矩阵如下:
在这里插入图片描述
顶点2(编号从0开始)的出度和入度分别是:

A.3, 1
B.1, 3
C.0, 2
D.2, 0

答案  C.0, 2(v0 v1 v2 v3 顶点的出度=第i行元素之和,入度=第i列元素之和)

34.下面给出的有向图中,有__个强连通分量。
在这里插入图片描述

1 2 3 4可以互相到达,但是都没法和0互相到达

35. 下面给出的有向图中,各个顶点的入度和出度分别是:

数据结构-图_第5张图片

36.设N个顶点E条边的图用邻接表存储,则求每个顶点入度的时间复杂度为:

A.O(N)
B.O(N2)
C.O(N+E)
D.O(N×E)

答案C.O(N+E)

37.若无向图G =(V,E)中含7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是:

A.6
B.15
C.16
D.21

答案 C.16 解析:要保证在任何情况下都连通,6个顶点的完全无向图,有15条边,此时我随便加一个顶点进去,无论任何情况,我都满足连通的条件,于是边数=15+1=16,即C62+1=16.

38.一个有28条边的非连通无向图至少有( )个顶点?

答案:9 解析:完全图的边数是最多的,8个顶点的无向完全图有28条边,但此时是连通的呀,我再加一个顶点,就构成了非连通无向图,此时的顶点个数为9.此题的思想和上一题刚好是反着来的。

39.如果G是一个有36条边的非连通无向图,那么该图顶点个数最少为多少?

A.7
B.8
C.9
D.10

答案D 10

40.在N个顶点的无向图中,所有顶点的度之和不会超过顶点数的多少倍?

A.1
B.2
C.(N−1)/2
D.N−1

答案 D.N−1 解析:完全无向图的边为N*(N−1)/2,度数为N*(N−1),所以为N-1倍。可以举例子如3个顶点6个度,4个顶点最多12个度,因此不会超过顶点的n-1倍

41.具有N(N>0)个顶点的无向图至多有多少个连通分量? (2分)

答案 n个 解析:每个顶点都是一个连通分量。

42.具有N(N>0)个顶点的无向图至多有多少个连通分量? 

A.0
B.1
C.N−1
D.N

答案 D.N

43.一个有N个顶点的强连通图至少有多少条边?

A.N−1
B.N
C.N+1
D.N(N−1)

答案 B.N

44.对于有向图,其邻接矩阵表示比邻接表表示更易于:

A.求一个顶点的入度
B.求一个顶点的出边邻接点
C.进行图的深度优先遍历
D.进行图的广度优先遍历

答案 A.求一个顶点的入度

45.若一个有向图用邻接矩阵表示,则第i个结点的入度就是

A.第i行的元素个数
B.第i行的非零元素个数
C.第i列的非零元素个数
D.第i列的零元素个数

答案 C.第i列的非零元素个数

46.若某图的深度优先搜索序列是{V1, V4, V0, V3, V2},则下列哪个图不可能对应该序列

在这里插入图片描述

答案C 按照题目来得到的为14302

47. 若某图的深度优先搜索序列是{V2, V0, V4, V3, V1},则下列哪个图不可能对应该序列?
在这里插入图片描述

 答案 D 按照题目只能得到20341

48.已知无向图G含有16条边,其中度为4的顶点个数为3,度为3的顶点个数为4,其他顶点的度均小于3。图G所含的顶点个数至少是:

A.10
B.11
C.13
D.15

答案 B.11 无向图边数的两倍等于各顶点度数的总和。由于其他顶点的度均小于3,可以设它们的度都为2,设它们的数量是x,可列出这样的方程4*3+3*4+2*x=16*2,解得x=4。4+4+3=11

49.给定一有向图的邻接表如下。从顶点V1出发按深度优先搜索法进行遍历,则得到的一种顶点序列为:
在这里插入图片描述

50. 已知一个图的邻接矩阵如下,则从顶点V1出发按深度优先搜索法进行遍历,可能得到的一种顶点序列为:
在这里插入图片描述

51.如果从无向图的任一顶点出发进行一次深度优先搜索可访问所有顶点,则该图一定是:

A.连通图
B.完全图
C.有回路的图
D.一棵树

答案 A.连通图

52.如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则下列说法中不正确的是:

A.G肯定不是完全图
B.G中一定有回路
C.G一定不是连通图
D.G有2个连通分量

答案  B.G中一定有回路

数据结构-图_第6张图片

53.给定一有向图的邻接表如下。若从v1开始利用此邻接表做广度优先搜索得到的顶点序列为:{v1, v3, v2, v4, v5},则该邻接表中顺序填空的结果应为:
在这里插入图片描述

54.给定一有向图的邻接表如下。从顶点V1出发按广度优先搜索法进行遍历,则得到的一种顶点序列为:
在这里插入图片描述

55.已知一个图的邻接矩阵如下,则从顶点V1出发按广度优先搜索法进行遍历,可能得到的一种顶点序列为:
在这里插入图片描述

56.下列说法不正确的是:

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次
B.遍历的基本算法有两种:深度遍历和广度遍历
C.图的深度遍历是一个递归过程
D.图的深度遍历不适用于有向图

答案 D.图的深度遍历不适用于有向图

57.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是( )。


G中有一条从Vj到Vi的路径(扩扑排序,如果G中有一条从Vj到Vi的路径,在Vj被选中前,Vi的入度不可能为0,也就是Vi不可能在vj之前,与Vi在Vj前相矛盾!数据结构-图_第7张图片

59.关键路径是事件结点网络中( )。
从源点到汇点的最长路径

60.使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:
数据结构-图_第8张图片
5, 2, 3, 6, 4

 数据结构-图_第9张图片

61.下图所示的 AOE 网表示一项包含 8 个活动的工程。活动 d 的最早开始时间和最迟开始时间分别是: C
数据结构-图_第10张图片

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

 数据结构-图_第11张图片

62.在图采用邻接表存储时,求最小生成树的 Prim 算法的时间复杂度为( )

  •    B、O(n+e)

简答题


   
 

PRIM(普里姆算法)

数据结构-图_第12张图片

1.假设A为起始点,距B最近,B为2号点
2.找到距离A或B最近的点,C为3号点
3.找距离A或B或C最近的点,G为4号点
4.循环往复,得到一个序列就是最小生成树

ps:
1.最短距离重复时,选一个自己喜欢的点为下一个序号点
2.总权重为序列路劲的数值总和。

 解析 数据结构-图_第13张图片

数据结构-图_第14张图片

 

数据结构-图_第15张图片

(1) 该图是强连通的吗? 若不是,则给出其强连通分量
(2) 请给出所有的简单路径及有向环
(3) 请给出每个顶点的度,入度和出度
(4)请给出其邻接表、邻接矩阵及逆邻接表

 数据结构-图_第16张图片

数据结构-图_第17张图片

 数据结构-图_第18张图片

 数据结构-图_第19张图片

 数据结构-图_第20张图片

对n个顶点的有向图G,采用邻接表存储,请回答下列有关问题:
(1)如何求图中的边数?
(2)如何判断顶点i到顶点j是否有边相连?
(3)如何求任意一个顶点i的入度?

数据结构-图_第21张图片

数据结构-图_第22张图片数据结构-图_第23张图片

判断题

1.图的 BFS 生成树的树高比 DFS 生成树的树高

错 (小或相等)

2.连通图的生成树包含了图中所有顶点。

对(书上连通图的生成树概念有)

因此,构造最小生成树的准则有三条:

(1)必须只使用该图中的边来构造最小生成树;

(2)必须使用且仅使用n-1条边来连接图中的n个顶点;

(3)不能使用产生回路的边。

3.对n个顶点的连通图G来说,如果其中的某个子图有n个顶点、n-1条边,则该子图一定是G的生成树。

错(这样的子图不一定是连通的。)

4.一个连通图的生成树是唯一的。

错(一个连通图的生成树可能有多棵。最小代价唯一,树不唯一,因为可能有的边权值相同,导致有多种组成方式的树

5.在有向图中,如果顶点i到顶点j有路径,而顶点i到顶点k没有路径,则顶点j到顶点k也没有路径。

对(如果顶点j到顶点k有路径,则顶点i有一条通过顶点j到达顶点k的路径,与题中条件矛盾。)数据结构-图_第24张图片

6.一个图中的简单路径是指该路径上的边不重复出现。

错 一个图中的简单路径是指该路径上的顶点不重复出现。(简单回路或者简单环是指除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路)

7.在无向图中,如果顶点i到顶点j有路径,而顶点j到顶点k没有路径,则顶点i到顶点k也没有路径。

对(顶点i和顶点j属一个连通分量,而顶点k属另一个连通分量,所以顶点i到顶点k没有路径。可画图分析)数据结构-图_第25张图片

 8.有n-1条边的图肯定都是生成树。

9.任何无向图都存在生成树。

10.一个无向图G,若某顶点v到其它每个顶点都有至少一条路径,则图G只有1个连通分量。

11.用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关,这样的说法正确吗?

(邻接表需要存储边)

12.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。

13.用邻接矩阵法存储一个图时,所占用的存储空间大小不仅与图中结点个数有关,而且与图的边数有关。

用邻接矩阵存储图,占用的存储空间大小只与图中结点个数有关,而与边数无关   。

14.AOE图的关键路径就是最长的路径

15.若有向图G存在拓扑排序序列,则G一定不是强连通的。
对(强连通图指任意两点都可以互相到达,而拓扑排序:从入度为0的结点开始,排一个删一个;强连通图每个点入度出度都有,不存在入度为0的点

16.1个有向完全图也是1个强连通图。

17.在n个结点的无向图中,若边数大于n-1,则该图必是连通图。

数据结构-图_第26张图片

17.AOE中的关键路径是唯一的。

错 不是唯一的

你可能感兴趣的:(数据结构习题大全,数据结构,算法,c++)