第七章习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章习题
7.1已知如图所示的有向图,请给出该图的:
(1)每个顶点的入度、出度;
(2)邻接矩阵;
(3)邻接表;
(4)逆邻接表;
(5)十字链表;
(6)强连通分量。
7.2已知如图所示的无向图,请给出该图的:
(1) 邻接多重表;(要求每个边结点中第一个顶点号小于第二个顶点号,且每个顶点的
各邻接边的链接顺序,为它所邻接到的顶点序号由小到大的顺序。)
(2 深度优先遍历该图所得顶点序列和边的序列;
(3) 广度优先遍历该图所得顶点序列和边的序列。
7.3已知如图所示的AOE网,试求:
(1) 每个事件的最早发生时间和最晚发生时间;
(2) 每个活动的最早开始时间和最晚开始时间;
(3) 给出关键路径。
7.4已知如图所示的有向网,试利用Dijkstra算法求顶点1到其余顶点的最短路径,并给出
算法执行过程中各步的状态。
7.5编写算法,由依次输入的顶点数目、弧的数目、各顶点的信息和各条弧的信息建立有向
图的邻接表。
7.6试在邻接矩阵存储结构上实现图的基本操作:InsertVertex(G,v),InsertArc(G, v,
w),DeleteVertex(G,v)和DeleteArc(G, v, w)。
7.7试用邻接表存储结构重做题7.6。
7.8试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中,是否存在
由顶点v i到顶点v j的路径(i≠j)。注意:算法中涉及的图的基本操作必须在此存储结构上实现。
7.9同上题要求。试基于图的广度优先搜索策略写一算法。
7.10 试利用栈的基本操作,编写按深度优先策略遍历一个强连通图的非递归形式的算法。
算法中不规定具体的存储结构,而将图Graph看成是一种抽象数据类型。
7.11采用邻接表存储结构,编写一个判别无向图中任意给定的两个顶点之间是否存在一条长
度为k的简单路径(指顶点序列中不含有重现的顶点)的算法。
7.12 下图是带权的有向图G的邻接表表示法。从结点V1出发,深度遍历图G所得结点序
列为(A ),广度遍历图G所得结点序列为(B );G的一个拓扑序列是(C );
从结点V1到结点V8的最短路径为(D );从结点V1到结点V8的关键路径为(E )。
其中A、B、C的选择有:
V1,V2,V3,V4,V5,V6,V7,V8
V1,V2,V4,V6,V5,V3,V7,V8
V1,V2,V4,V6,V3,V5,V7,V8
V1,V2,V4,V6,V7,V3,V5,V8
V1,V2,V3,V8,V4,V5,V6,V7
V1,V2,V3,V8,V4,V5,V7,V6
V1,V2,V3,V8,V5,V7,V4,V6
D、E的选择有:
①V1,V2,V4,V5,V3,V8
②V1,V6,V5,V3,V8
③V1,V6,V7,V8
④V1,V2,V5,V7,V8
实习题
一、分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历。
二、校园导游程序。
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。
要求实现以下功能:
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径。
(3)查询图中任意两个景点间的所有路径。
三、编程求解关键路径问题。
第七章答案
7.1已知如图所示的有向图,请给出该图的:
(1) 每个顶点的入度、出度; (2) 邻接矩阵; (3) 邻接表; (4) 逆邻接表; (5) 十字链表;
(6)
强连通分量。
【解答】
(1)顶点 入度 出度 1 3 0 2 2 2 3 1 2 4 1 3 5 2 1 6 2 3
(1) 邻接矩阵
(3)邻接表
题1图
(4)逆邻接表
(5)十字链表
(6)强连通分量
7.2已知如图所示的无向图,请给出该图的:
(2)深度优先遍历该图所得顶点序列和边的序列;(3)广度优先遍历该图所得顶点序列和边的序列。
【解答】
(2)深度优先搜索
顶点序列:1-2-3-4-5-6
边的序列:(1,2)(2,3)(3,4)(4,5)(5,6)
深度优先搜索树:
(2)广度优先搜索
顶点序列:1-2-3-6-5-4
边的序列:(1,2)(1,3)(1,6)(1,5)(5,4)
深度优先搜索树:
注:本题中所求深度优先序列和广度优先序列有多种,以上为其中一种。
7.3 【解答】
源点终点最短路径路径长度
1 2 1,3,2 19
3 1,3 15
4 1,3,2,4 29
5 1,3,5 29
6 1,3,2,4,6 44
7.12 【解答】
(A)深度遍历:1,2,3,8,4,5,7,6或1,2,3,8,5,7,4,
(B)广度遍历:1,2,4,6,3,5,7,8
(C)拓扑序列:1,2,4,6,5,3,7,8
(D)最短路径:1,2,5,7,8
(E)关键路径:1,6,5,3,8
7.13 【解答】
按层遍历二叉树
LayerOrder(BiTree root)
{
LinkQueue Q;
InitQueue(&Q);
if(root==NULL) return;
EnterQueue(&Q,root);
while(!Empty(&Q))
{
DelQueue(&Q,&p);
visite(p->data);
if(p->LChild!=NULL)
EnterQueue(&Q,p->LChild);
if(p->RChild!=NULL)
EnterQueue(&Q,p->RChild);
}
}