




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--第7章图自测卷解答一、单项选择题(每题1分,共16分)(C)1.在一个图中,所有极点的度数之和等于图的边数的倍。A.1/2B.1C.2D.4(B)2.在一个有向图中,所有极点的入度之和等于所有极点的出度之和的倍。A.1/2B.1C.24(B)3.有8个结点的无向图最多有条边。A.14B.28C.56D.112(C)4.有8个结点的无向连通图最罕有条边。A.5B.6C.7D.8(C)5.有8个结点的有向完整图有条边。A.14B.28C.56.112(B)6.用毗邻表表示图进行广度优先遍历时,往常是采纳来实现算法的。A.栈B.行列C.树图(A)7.用毗邻表表示图进行深度优先遍历时,往常是采纳来实现算法的。A.栈B.行列C.树D.图(C)8.已知图的毗邻矩阵,依据算法思想,则从极点0出发按深度优先遍历的结点序列是0111101100100110001001100110101101000011011100010
A.0243156013654204231650361542D)9.已知图的毗邻矩阵同上题8,依据算法,则从极点0出发,按深度优先遍历的结点序列是A.0243156B.0135642C.0423165D.0134256(B)10.已知图的毗邻矩阵同上题8,依据算法,则从极点0出发,按广度优先遍历的结点序列是A.0243651B.0136425C.0423156D.0134256(C)11.已知图的毗邻矩阵同上题8,依据算法,则从极点0出发,按广度优先遍历的结点序列是----A.0243165B.0135642C.0123465D.0123456(D)12.已知图的毗邻表以下所示,依据算法,则从极点0出发按深度优先遍历的结点序列是A.0132B.0231C.0321D.0123(A)13.已知图的毗邻表以下所示,依据算法,则从极点0出发按广度优先遍历的结点序列是A.0321B.0123C.0132D.0312(A)14.深度优先遍历近似于二叉树的A.先序遍历B.中序遍历C.后序遍历D.层次遍历(D)15.广度优先遍历近似于二叉树的A.先序遍历B.中序遍历C.后序遍历D.层次遍历(A)16.任何一个无向连通图的最小生成树A.只有一棵B.一棵或多棵C.必定有多棵D.可能不存在(注,生成树不独一,但最小生成树独一,即边权之和或树权最小的状况独一)二、填空题(每空1分,共20分)1.图有毗邻矩阵、毗邻表等储存构造,遍历图有深度优先遍历、广度优先遍历等方法。2.有向图G用毗邻表矩阵储存,其第i行的所有元素之和等于极点i的出度。3.假如n个极点的图是一个环,则它有n棵生成树。(以随意一极点为起点,获得n-1条边)4.n个极点e条边的图,若采纳毗邻矩阵储存,则空间复杂度为O(n2)。5.n个极点e条边的图,若采纳毗邻表储存,则空间复杂度为O(n+e)。6.设有一稀少图G,则G采纳毗邻表储存较省空间。7.设有一浓密图G,则G采纳毗邻矩阵储存较省空间。8.图的逆毗邻表储存构造只合用于有向图。9.已知一个图的毗邻矩阵表示,删除所有从第i个极点出发的方法是将毗邻矩阵的第i行所有置0。10.图的深度优先遍历序列不是唯一的。11.n个极点e条边的图采纳毗邻矩阵储存,深度优先遍历算法的时间复杂度为O(n2);若采纳毗邻表储存时,该算法的时间复杂度为O(n+e)。12.n个极点e条边的图采纳毗邻矩阵储存,广度优先遍历算法的时间复杂度为O(n2);若采纳毗邻表储存,该算法的时间复杂度为O(n+e)。13.图的BFS生成树的树高比DFS生成树的树高小或相等。----用普里姆(Prim)算法求拥有n个极点e条边的图的最小生成树的时间复杂度为O(n2);用克鲁斯卡尔(Kruskal)算法的时间复杂度是O(elog2e)。15.若要求一个稀少图G的最小生成树,最好用克鲁斯卡尔(Kruskal)算法来求解。16.若要求一个浓密图G的最小生成树,最好用普里姆(Prim)算法来求解。17.用Dijkstra算法求某一极点到其余各极点间的最短路径是按路径长度递加的序次来获得最短路径的。18.拓扑排序算法是经过重复选择拥有0个前驱极点的过程来达成的。三、简答题(每题6分,共24分)1.已知以下图的有向图,请给出该图的:(1)每个极点的入/出度;极点123456(2)毗邻矩阵;入度(3)毗邻表;出度(4)逆毗邻表。答案:.请对以下图的无向带权图:1)写出它的毗邻矩阵,并按普里姆算法求其最小生成树;2)写出它的毗邻表,并按克鲁斯卡尔算法求其最小生成树。解:设起点为a。能够直接由原始图画出最小生成树,并且最小生成树只有一种(类)!毗邻矩阵为:04340559535055507654最小生成树→703630252065460PRIM算法(横向变化):VbcdefghUV-UVexaaaaaaa{a}{b,c,d,e,f,lo43∞∞∞∞∞g,h}----wcostVexa0caaac{a,c}{b,d,e,f,lowc45∞∞∞5g,h}ostVex00cbaac{a,c,b}{d,e,f,g,h}lowc59∞∞5ostVex000dddd{a,c,b,{e,f,g,h}lowc7654d}ostVex000ddd0{a,{e,f,g}low765c,b,d,hcos}tVex000dg00{a,c,b,d,{f,e}lowc72h,g}ostVex000f000{a,c,b,{e}lo3d,h,g,wcostf}Vex0000000{a,c,b,d,h{}l,g,f,owcoste}毗邻表为:→b4→c3b→a4→c5→d5→e9^c→a3→b5→d5→h5^d→b5→c5→e7→f6→g5→h4^e→b9→d7→f3^f→d6→e3→g2^g→d5→f2→h6^h→c5→d4→g6^克鲁斯卡尔算法步骤(按边合并,堆排序):先排列:f---2---ga—3--cf—3—ea—4---bd—4—h(a,b,c)(e,f,g)(d,h)取b—5—d,g—5--d就把三个连通重量连结起来了。3.已知二维数组表示的图的毗邻矩阵以以下图所示。试分别画出自极点1出发进行遍历所得的深度优先生成树和广度优先生成树。----4.试利用Dijkstra算法求图中从极点a到其余各极点间的最短路径,写出履行算法过程中各步的状态。解:最短路径为:(a,c,f,e,d,g,b)四、给定以下网G:(10分)1试着找出网G的最小生成树,画出其逻辑构造图;2用两种不一样的表示法画出网G的储存构造图;3用C语言(或其余算法语言)定义此中一种表示法(储存构造)的数据种类。解:1.最小生成树可直接画出,如右图所示。2.可用毗邻矩阵和毗邻表来描绘:1241220892015121510486961210
描绘储存构造的数据种类可参赐教材或电子教学设计:注:用两个数组分别储存极点表和毗邻矩阵#defineINFINITYINT_MAX//最大值∞#defineMAX_VERTEX_NUM20//假定的最大极点数(可取为7)Typedefenum{DG,DN,AG,AN}GraphKind;//有向/无向图,有向/无向网TypedefstructArcCell{//弧(边)结点的定义VRTypeadj;//极点间关系,无权图取1或0;有权图取权值种类InfoType*info;//该弧有关信息的指针}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];Typedefstruct{//图的定义VertexTypevexs[MAX_VERTEX_NUM];//极点表,用一维向量即可AdjMatrixarcs;//毗邻矩阵IntVernum,arcnum;//极点总数(7),弧(边)总数(9)--//图的种类标记GraphKindkind;}Mgraph;--毗邻表为:a→b12→e4^b→a12→c2→e8→f9^0AB———————Cc→b2→d1→g1^052d→c1→g1^E————FG————D50e→a4→b8→f6^f→b9→e6^g→c1→d120五、算法设计题(每题10分,共30分)1.编写算法,由挨次输入的极点数量、弧的数量、各极点的信息和各条弧的信息成立有向图的毗邻表。解:StatusBuild_AdjList(ALGraph&G)//输入有向图的极点数,边数,极点信息和边的信息成立毗邻表{InitALGraph(G);scanf("%d",&v);if(v<0)returnERROR;//极点数不可以为负G.vexnum=v;scanf("%d",&a);if(a<0)returnERROR;//边数不可以为负G.arcnum=a;for(m=0;m<v;m++)G.vertices[m].data=getchar();//输入各极点的符号or(m=1;m<=a;m++){t=getchar( );h=getchar( );//t为弧尾,h为弧头if((i=LocateVex(G,t))<0)returnERROR;if((j=LocateVex(G,h))<0)returnERROR;//极点未找到----p=(ArcNode*)malloc(sizeof(ArcNode));if(!G.vertices.[i].firstarc)G.vertices[i].firstarc=p;else{for(q=G.vertices[i].firstarc;q->nextarc;q=q->nextarc);q->nextarc=p;}p->adjvex=j;p->nextarc=NULL;}//whilereturnOK;}//Build_AdjList2.试在毗邻矩阵储存构造上实现图的基本操作:DeleteArc(G,v,w),即删除一条边的操作。(假如要删除所有从第i个极点出发的边呢?提示:将毗邻矩阵的第i行所有置0)解://本题中的图G均为有向无权图。StatusDelete_Arc(MGraph&G,charv,charw)//在毗邻矩阵表示的图G上删除边(v,w){if((i=LocateVex(G,v))<0)returnERROR;if((j=LocateVex(G,w))<0)returnERROR;if(G.arcs[i][j].adj){G.arcs[i][j].adj=0;G.arcnum--;}returnOK;}//Delete_Arc3.试鉴于图的深度优先搜寻策略写一算法,鉴别以毗邻表方式储存的有向图中能否存在由极点vi到极点vj的路径(i≠j)。注意:算法中波及的图的基本操作一定在此储存构造上实现。intvisited[MAXSIZE];//指示极点能否在目前路径上intexist_path_DFS(ALGraphG,inti,intj)//深度优先判断有向图G中极点i到顶点j能否有路径,是则返回1,不然返回0{if(i==j)return1;//i就是jelse{visited[i]=1;for(p=G.vertices[i].firstarc;p;p=p->nextarc){k=p->adjvex;if(!visited[k]&&exist_path(k,j))return1;//i下游的极点到j有路径}//for}//else----}//exist_path_DFS解2:(以上算法仿佛有问题:假如不存在路径,则原程序不可以返回0。我的解决方式是在原程序的中引入一变量level来控制递归进行的层数。详细的方法我在程序顶用红色标记出来了。)intvisited[MAXSIZE];//指示极点能否在目前路径上intlevel=1;//递归进行的层数intexist_path_DFS(ALGraphG,inti,intj)//深度优先判断有向图G中极点i到顶点j能否有路径,是则返回1,不然返回0{if(i==j)return1;//i就是jelse{visited[i]=1;for(p=G.vertices[i].firstarc;p;p=p->nextarc,level--){level++;k=p->adjvex;if(!visited[k]&&exist_path(k,j))return1;//i下游的极点到j有路径}//for}//elseif(level==1)return0;}//exist_path_DFS附带题:采纳毗邻表储存构造,编写一个鉴别无向图中随意给定的两个极点之间能否存在一条长度为k的简单路径的算法。(注1:一条路径为简单路径指的是其极点序列中不含有重现的极点。注2:本题可拜见严题集P207-208中有关按“路径”遍历的算法基本框架。)intvisited[MAXSIZE];intexist_path_len(ALGraphG,inti,intj,intk)//判断毗邻表方式存储的有向图G的极点i到j能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实习实训基地合作协议合同范本
- 企业间的战略合作伙伴合同
- 全职劳动合同参考合同
- 5守株待兔(教学设计)-2023-2024学年语文三年级下册统编版
- Unit 1 How can I get there?Part B(教学设计)-2024-2025学年人教PEP版英语六年级上册
- 常年法律顾问服务合同
- 11 浮力 第二课时 教学设计-2024-2025学年科学四年级上册苏教版
- 建筑项目材料检测委托合同
- 中保人寿瑞祥养老保险合同范本
- 标准化苗木购销合同范本详解
- SH/T 3003-2024 石油化工合理利用能源设计导则(正式版)
- 中国人民大学613卫生统计历年真题12-16
- 人事聘用合同范本标准版
- 新疆地方教材可爱的中国第二单元教学设计
- 米-伊林《十万个为什么》阅读练习+答案
- 三年级奥数专项练习-和差问题
- 强化学习 课件 第1章 强化学习概述
- 《邓稼先》省公开课一等奖全国示范课微课金奖课件
- 苏教版二年级下册科学全册教案
- 挖掘机操作收藏手册
- 教育家精神专题讲座课件
评论
0/150
提交评论