数据结构图习题.docx
- 文档编号:2296513
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:17
- 大小:164.38KB
数据结构图习题.docx
《数据结构图习题.docx》由会员分享,可在线阅读,更多相关《数据结构图习题.docx(17页珍藏版)》请在冰豆网上搜索。
数据结构图习题
第七章图:
习题
习 题
一、选择题
1.设完全无向图的顶点个数为n,则该图有( )条边。
A.n-l B.n(n-l)/2 C.n(n+l)/2 D.n(n-l)
2.在一个无向图中,所有顶点的度数之和等于所有边数的( )倍。
A.3 B.2 C.1 D.1/2
3.有向图的一个顶点的度为该顶点的( )。
A.入度 B.出度 C.入度与出度之和 D.(入度+出度)/2
4.在无向图G(V,E)中,如果图中任意两个顶点vi、vj(vi、vj∈V,vi≠vj)都的,则称该图是( )。
A.强连通图 B.连通图 C.非连通图 D.非强连通图
5.若采用邻接矩阵存储具有n个顶点的一个无向图,则该邻接矩阵是一个( )。
A.上三角矩阵 B.稀疏矩阵
C.对角矩阵 D.对称矩阵
6.若采用邻接矩阵存储具有n个顶点的一个有向图,顶点vi的出度等于邻接矩阵
A.第i列元素之和 B.第i行元素之和减去第i列元素之和
C.第i行元素之和 D.第i行元素之和加上第i列元素之和
7.对于具有e条边的无向图,它的邻接表中有( )个边结点。
A.e-l B.e C.2(e-l) D.2e
8.对于含有n个顶点和e条边的无向连通图,利用普里姆Prim算法产生最小生成时间复杂性为( ),利用克鲁斯卡尔Kruskal算法产生最小生成树(假设边已经按权的次序排序),其时间复杂性为( )。
A.O(n2) B.O(n*e) C.O(n*logn) D.O(e)
9.对于一个具有n个顶点和e条边的有向图,拓扑排序总的时间花费为O( )
A.n B.n+l C.n-l D.n+e
10.在一个带权连通图G中,权值最小的边一定包含在G的( )生成树中。
A.最小 B.任何 C.广度优先 D.深度优先
二、填空题
1.在一个具有n个顶点的无向完全图中,包含有____条边;在一个具有n个有向完全图中,包含有____条边。
2.对于无向图,顶点vi的度等于其邻接矩阵____的元素之和。
3.对于一个具有n个顶点和e条边的无向图,在其邻接表中,含有____个边对于一个具有n个顶点和e条边的有向图,在其邻接表中,含有_______个弧结点。
4.十字链表是有向图的另一种链式存储结构,实际上是将_______和_______结合起来的一种链表。
5.在构造最小生成树时,克鲁斯卡尔算法是一种按_______的次序选择合适的边来构造
最小生成树的方法;普里姆算法是按逐个将_______的方式来构造最小生成树的另一种方法。
6.对用邻接表表示的图进行深度优先遍历时,其时间复杂度为一;对用邻接表表示的图进行广度优先遍历时,其时间复杂度为_______。
7.对于一个具有n个顶点和e条边的连通图,其生成树中的顶点数为_______,边数为_______。
8.在执行拓扑排序的过程中,当某个顶点的入度为零时,就将此顶点输出,同时将该顶点的所有后继顶点的入度减1。
为了避免重复检测顶点的入度是否为零,需要设立一个____来存放入度为零的顶点。
三、简答题
l.回答以下问题:
(1)有n个顶点的无向连通图最多需要多少条边?
最少需要多少条边?
(2)表示一个具有1000个顶点、1000条边的无向图的邻接矩阵有多少个矩阵元素?
有多少非零元素?
是否为稀疏矩阵?
2.题图7-1为一有向图,按要求回答问题:
(1)写出各顶点的入度、出度和度。
(2)给出该图的邻接矩阵。
(3)给出该图的邻接表。
(4)给出该图的十字链表。
3.题图7-2为一无向图,请按要求回答问题:
(1)画出该图的邻接表。
(2)画出该图的邻接多重表。
(3)分别写出从顶点1出发按深度优先搜索遍历算法得到的顶点序列和按广度优先搜索
遍历算法得到的顶点序列。
4.题图7-3为一带权无向图,请按要求回答问题。
(1) 画出该图的邻接矩阵,并按普里姆算法求其最小生成树。
(2)画出该图的邻接表,并按克鲁斯卡尔算法求其最小生成树。
5.题图7-4是一带权有向图,试采用狄杰斯特拉Dijkstra算法求从顶点1到其他各项点的最短路径,要求给出整个计算过程。
6.题图7-5为一个带权有向图
(1)给出该图的邻接矩阵。
(2)请用弗洛伊德算法求出各顶点对之间的最短路径长度,要求写出其相应的矩阵序列。
7.对于有向无环图,
(1)叙述求拓扑有序序列的步骤。
(2)对于题图7-6所示的有向图,写出它的4个不同的拓扑有序序列。
8.题图7-7是一个AOE网,试求:
(1)每项活动的最早开始时间和最迟开始时间。
(2)完成整个工程至少需要多少天。
(3)哪些是关键活动。
(4)是否存在某些活动,当提高其速度后能使整个工期缩短。
四、算法设计题
1.编写一个算法,判断图G中是否存在从顶点vi到vj的长度为k的简单路径。
2.以邻接表作为图的存储结构,编写实现连通图G的深度优先搜索遍历(从顶点v出发)的非递归函数。
3.给定n个村庄之间的交通图。
若村庄i与村庄j之间有路可通,则将顶点i与顶点j之间用边连接,边上的权值Wij表示这条道路的长度。
现打算在这n个村庄中选定一个村庄建一所医院。
试编写一个算法,求出该医院应建在哪个村庄,才能使距离医院最远的村庄到医院的路程最短。
4.编写一个函数,计算给定的有向图的邻接矩阵的每对顶点之间的最短路径。
第七章图
第7章图
一、选择题(参考答案):
1.B 2.B 3.C 4.B 5.D
6.C 7.D 8.A,D 9.D 10.A
二、填空题(参考答案)
1.n(n-l)/2,n(n-l)。
2.第i行。
3.2e,e0 4.邻接表,逆邻接表。
5.权值递增,顶点连通。
6.O(e),O(e)。
7.n,n-l。
8.栈。
三、简答题
1.回答以下问题:
(1)有n个顶点的无向连通图最多需要多少条边?
最少需要多少条边?
(2)表示一个具有1000个顶点、1000条边的无向图的邻接矩阵有多少个矩阵元素?
有多少非零元素?
是否为稀疏矩阵?
【解答】(l)有n个顶点的无向连通图最多有n(n-l)/2条边(构成一个无向完全图的情况);最少有n-l条边(n个顶点是连通的)。
(2)这样的矩阵共有lOOO*1000=1000000个矩阵元素,因为有1000条边,所以有2000非零元素,因此该矩阵是稀疏矩阵。
2.题图7-1为一有向图,按要求回答问题:
题图7-1
(1)写出各顶点的入度、出度和度。
(2)给出该图的邻接矩阵。
(3)给出该图的邻接表。
(4)给出该图的十字链表。
【解答】(l)各顶点入度、出度和度如下表所示。
(2)邻接矩阵如下所示。
0 0 0 0 0 0
1 0 0 1 0 0
0 1 0 0 0 1
0 0 1 0 1 1
1 0 0 0 0 0
1 1 0 0 1 0
(3)邻接表如下所示。
(4)十字接表如下所示。
3.题图7-2为一无向图,请按要求回答问题:
(1)画出该图的邻接表。
(2)画出该图的邻接多重表。
(3)分别写出从顶点l出发按深度优先搜索遍历算法得到的顶点序列和按广度优先搜索
遍历算法得到的顶点序列。
题图7-2
【解答】
(1)邻接表如下所示。
(2)多重邻接表如下所示。
(3)从顶点1出发,深度优先搜索遍历序列为:
123456;广度优先搜索遍历序列为:
123564。
4.题图7-3为一带权无向图,请按要求回答问题:
(1)画出该图的邻接矩阵,并按普里姆算法求其最小生成树。
(2)画出该图的邻接表,并按克鲁斯卡尔算法求其最小生成树。
【解答】
(1)按普里姆算法其最小生成树如下所示。
(2)按克鲁斯卡尔算法其最小生成树如下所示。
5.题图7-4是一带权有向图,试采用狄杰斯特拉Dijkstra算法求从顶点l到其他各顶点的最短路径,要求给出整个计算过程。
【解答】
(1)初值:
s[]={1),dist[]={0,20,15,∞,
∞,∞}(顶点1到其他各项点的权值),path[]={1,1,1,
-l,-1,-1)(顶点l到其他各项点有弧存在时为1,否则
为-1)。
(2)在V-S中找最近(dist[]最小)的顶点3,加入S中,即s[]={l,3),并重新计算顶点l到达顶点2,4,5和6的距离,修改相应的dist值:
dist[2]=min{dist[2], dist[3]+cost[3][2]}=min{20, 15+4}=19;
dist[6l=min{dist[6],dist[3]+cost[3][6]}==Inin{∞,15+10}=25;
则有dist[]={0,19,15,∞,∞,25},path[]={l,3,1,-l,-l,3}。
(3)在V-S中找出最近的顶点4,加入S中,即s[]={1,3,2},并重新计算顶点1到达顶点4,5和6的距离,修改相应的dist值:
dist[5]-min{dist[5], dist[2]+cost[2][5])-min{∞,19+10}=29,
则有dist[]={0,19,15,∞,29,25),path[]={l,3,l,-1,2,3}.
(4)在V-S中找出最近的顶点6,加入S中,即s[].{1,3,2,6),并重新计算顶点l到达顶点4和5的距离,修改相应的dist值:
dist[4]=min{dist[4],dist[6]+cost[6][4])=min{∞..,25+4}=29,
则有dist[]={0,19,15,29,29,25},path[]={l,3,1,6,2,3}。
(5)在V-S中找出最近的顶点4,加入S中,即s[]:
{l,3,2,6,4},并重新计算顶点l到达顶点5的距离,此时不需要修改dist值,则有dist[]={0,19,15,29,29,25),path[]={l,3, l,6,2, 3}。
(6)在V-S中找出最近的顶点5,加入S中,即s口={l,3,2,6,4,5}。
此时S中包含了图的所有顶点,算法结束。
最终dist[]={0,19,15,29,29,25),path[]={1,3,l,6,2, 3}。
由此得到:
从顶点1到顶点2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 结构图 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)