收藏 分享(赏)

数据结构习题及答案07xitidaan.doc

上传人:hwpkd79526 文档编号:8076048 上传时间:2019-06-07 格式:DOC 页数:6 大小:1.72MB
下载 相关 举报
数据结构习题及答案07xitidaan.doc_第1页
第1页 / 共6页
数据结构习题及答案07xitidaan.doc_第2页
第2页 / 共6页
数据结构习题及答案07xitidaan.doc_第3页
第3页 / 共6页
数据结构习题及答案07xitidaan.doc_第4页
第4页 / 共6页
数据结构习题及答案07xitidaan.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、第 7 章 图一、单选题 01-10 CBBCC BAACB 11-20 DAADB ACACB 21-30 DCDAD BCBAD二、填空题01、入度 02、n-1 03、邻接矩阵、邻接表04、深度、广度 04、出度 05、n06、O(n 2)、O(n+e) 07、有向 08、将邻接矩阵的第 i 行全部置 009、矩阵第 i 列非 0 元素之和 10、第 i 行第 j 列的元素是否为 011、O(n 2)、O(elog 2e) 12、克鲁斯卡尔(Kruskal)、普里姆(Prim) 13、递增 14、0 15、出度16、n 17、0 18、错误19、2(n-1) 20、存在三、简答题01、3

2、 个,分别是:a,bce,dfg02、03、普里姆算法产生边的序列:(1,3),(3,4),(4,6),(6,5),(5,2)克鲁斯卡尔算法产生边的序列:(4,6),(1,3),(4,3),(6,5),(2,5)04、v1,v2,v3,v4v1,v3,v2,v4v2,v1,v3,v405、(1) 每个顶点的入/出度 (2) 邻接矩阵(3) 邻接表 (4) 逆邻接表06、(1)邻接矩阵为:V b c d e f g h U V-UVexlowcosta4a3aaaaaa b,c,d,e,f,g,hVexlowcosta40 c5aaac5a,c b,d,e,f,g,hVexlowcost0 0

3、c5b9aac5a,c,b d,e,f,g,hVexlowcost0 0 0 d7d6d5d4a,c,b,d e,f,g,hVexlowcost0 0 0 d7d6d50 a,c,b,d,h e,f,gVexlowcost0 0 0 d7g20 0 a,c,b,d,h,g f,eVexlowcost0 0 0 f30 0 0 a,c,b,d,h,g,f eVexlowcost0 0 0 0 0 0 0 a,c,b,d,h,g,f,e 最小生成树07、邻接表为:fg(2)ac(3)fe(3)ab(4)dh(4)bd(5)dg(5)08、09、ac:2(a,c)af:6(a,c,f)ae:10(a

4、,c,e)ad:11(a,c,f,d)ag:14(a,c,f,d,g)ab:15(a,b)10、和上题类似,求解过程略。11、1,2,3,6,5,41,3,2,6,5,41,3,6,2,5,412、FALSE /初始化为未访问DSFTree(G, p-adjvex) /从相邻结点往下继续深度搜索p=p-next /下一个未访问的相邻结点四、算法设计题01、编写编历算法,完成对图的深度优先搜索和广度优先搜索。深度优先搜索:课本 P169 算法 7.4 和算法 7.5广度优先搜索:课本 P170 算法 7.602、编写算法,由依次输入的顶点数目、弧的数目、各顶点的信息和各条弧的信息建立有向图的邻接

5、表。解:Status Build_AdjList(ALGraph scanf(“%d“, if(vnextarc;q=q-nextarc); q-nextarc=p; p-adjvex=j;p-nextarc=NULL; /while return OK; /Build_AdjList 03、试在邻接矩阵存储结构上实现图的基本操作:DeleteArc(G,v,w) ,即删除一条边的操作。(如果要删除所有从第 i 个顶点出发的边呢? 提示: 将邻接矩阵的第 i 行全部置 0 )解:/本题中的图 G 均为有向无权图。 Status Delete_Arc(MGraph /指示顶点是否在当前路径上 i

6、nt exist_path_DFS(ALGraph G,int i,int j)/深度优先判断有向图 G 中顶点 i 到顶点 j 是否有路径,是则返回 1,否则返回 0 if(i=j) return 1; /i 就是 j else visitedi=1; for(p=G.verticesi.firstarc;p;p=p-nextarc) k=p-adjvex; if(!visitedk/i 下游的顶点到 j 有路径 /for /else /exist_path_DFS 解 2:(以上算法似乎有问题:如果不存在路径,则原程序不能返回 0。我的解决方式是在原程序的中引入一变量 level 来控制递

7、归进行的层数。具体的方法我在程序中用红色标记出来了。)int visitedMAXSIZE; /指示顶点是否在当前路径上 int level1;/递归进行的层数int exist_path_DFS(ALGraph G,int i,int j)/深度优先判断有向图 G 中顶点 i 到顶点 j 是否有路径,是则返回 1,否则返回 0 if(i=j) return 1; /i 就是 j else visitedi=1; for(p=G.verticesi.firstarc;p;p=p-nextarc,level-) level+;k=p-adjvex; if(!visitedk/i 下游的顶点到 j 有路径 /for /else if (level=1) return 0;/exist_path_DFS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报