第七章习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章习题
1、对图8-1所示的有向图,请给出它的:
(1)每个顶点的入度和出度。
(2)邻接矩阵。
(3)邻接表。
(4)逆邻接表。
(5)强连通分量。
图8-1 一个有向图
2、对图8-2所示的无向图,写出从顶点2出发的深度优先搜索遍历序列和广度优先搜索遍
历序列,以及它的深度优先生成树和广度优先生成树(得到的结果可以不惟一)。
5 1 7
4
89
6
3
2
图8-2 一个无向图
3、接上题的要求,写出邻接表和邻接矩阵,并利用写出的邻接表和邻接矩阵,再实现上题
的要求(得到的结果应该是惟一的)。
4、对图8-3所示的非连通图,建立它的邻接表,并根据邻接表写出它的深度优先搜索遍历
算法。
12
43
7
6 5
9 8
图8-3 一个非连通图
5、 图8-4所示的无向网,要求:
(1)首先写出它的邻接矩阵,然后再按普里姆(prim )算法求其最小生成树,要求写出求解的顺序步骤。
(2)首先写出它的邻接表,然后再按克鲁斯卡尔(kruskal )算法求其最小生成树,要求写出求解的顺序步骤。
(3)若调用克鲁斯卡尔算法,怎样从键盘输入边的权值?
9 1 23 1 4
4 5 11 7 6 8 3
9 1 5 4 2 10
3 6 12 2 8 2 25
图8-4 一个无向网
6、 对于图8-5所示的有向网,用迪杰斯特拉(dijkstra )求顶点1到其他顶点的最短路径。
图8-5 一个有向网
7、 对下面无向带权图8-6
图8-6
(1)写出它的邻接矩阵,并按普利姆算法求其最小生成树; (2)写出它的邻接表,并按克鲁斯卡尔算法求其最小生成树。 8、 对图8-7所示的AOE 网络,
图8-7
计算各活动弧的()i e a 和()j l a 函数值、各事件(顶点)的()i ve v 和()j vl v 的函数值,列出各关键路径。
9、 图8-8所示的有向图,用弗洛伊德(floyd )算法求所有顶点对之间的最短路径。
图8-8 一个有向图
10、对图8-9所示的图,画出它的邻接多重表存储结构。
3
1
6
9
5
2
10
8
4
7
图8-9
11、图8-10所给的AOV 网,试给出它的5种拓扑序列,然后给出它的带入度值的邻接表,
从该邻接表中,得到的拓扑序列为哪种?试写出来。
图8-10 一个AOV 网
12、编写算法,将有向图的邻接矩阵存储形式转换成邻接表存储形式。邻接矩阵和邻接表的
数据类型描述见本章前面的算法描述部分。
13、利用有向图的邻接矩阵建立一个带入度值的邻接表(有向图的顶点数目和边的数目由参
数传递)。提示:邻接表类似于AOV 的邻接表。
14、对图8-11所给的非连通图,写出它的邻接表,并根据此邻接表,写出得到广度优先生
成森林的算法(输出森林中的每一条边)。
3
1
6
9
5
2
10
8
4
7
图8-11
15、编写一个实现连通图G 的深度优先搜索遍历(从指定顶点V 出发)的非递归算法。 16、试利用Dijkstra 算法求图8-12中从顶点a 到其他各顶点间的最短路径,写出执行算法过
程中各步的状态。
图8-12
17、试用算法实现邻接矩阵中插入一个顶点若干条边的操作insert(G ,x,n),其中,G 代表图,
x 代表插入的顶点,n 代表依附该顶点的边的数目。
18、试基于图的深度优先搜索策略写一个算法,判别以邻接表方式存储的有向图中是否存在
由顶点i v 到顶点j v 的路径(i j ≠)。注意算法中涉及的图的基本操作必须在此存储结构上实现。
19、以邻接表作存储结构实现求从源点到其余各顶点的最短路径的Dijkstra 算法。 20、试设计一个算法,将无向图的邻接表形式的存储结构转换成邻接矩阵的形式(无向图的
顶点数目和边的数目由参数传递)。
21、设计一个算法利用遍历图的方法输出一个无向图G 中从顶点v i 到v j 的长度为l 的简单
路径,假设无向图采用邻接表作存储结构。
22、假设图采用邻接表存储,编写一个算法利用深度优先搜索法求出无向图中通过给定点v
的简单回路。
23、对图8-13所示的AOE 网,计算各活动弧的最早开始时间e(i)和最晚开始时间l(i),各事
件的最早开始时间ve(i)和最晚开始时间vl(i),列出各条关键路径。并回答:工程完成的最短时间是什么?哪些活动是关键活动?是否有某些活动提高速度后能导致整个工程缩短工期?
图8-13 一个AOE 网
24、利用有向图的邻接矩阵建立一个带入度值的邻接表(有向图的顶点数目和边的数目由参
数传递)。提示:邻接表类似于AOV 的邻接表。
25、设G 为具有n 个顶点的无向连通图,证明:图G 中至少有n-1条边。
26、试写一个算法,判别以邻接表方式存储的有向图G 中是否存在由顶点vi 到顶点vj 的路
径(i ≠j )
。
27、对图8-14所给的有向网,利用弗洛伊德(floyd)算法求出每对顶点之间的最短路径。要求
给出求解过程中矩阵的变化情形。