ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:142.81KB ,
资源ID:12724311      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12724311.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构单元8练习参考答案.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构单元8练习参考答案.docx

1、数据结构单元8练习参考答案单元练习8一判断题(下列各题,正确的请在前面的括号内打;错误的打 )()(1)图可以没有边,但不能没有顶点。()(2)在无向图中,(V1,V2)与(V2,V1)是两条不同的边。()(3)邻接表只能用于有向图的存储。()(4)一个图的邻接矩阵表示是唯一的。()(5)用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。()(6)有向图不能进行广度优先遍历。()(7)若一个无向图的以顶点V1为起点进行深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。()(8)存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的上三角(或下三角)部分就可

2、以了。()(9)用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。()(10)若一个无向图中任一顶点出发,进行一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。二填空题(1) 图常用的存储方式有邻接矩阵和 邻接表 等。(2) 图的遍历有: 深度优先搜 和广度优先搜等方法。(3) 有n条边的无向图邻接矩阵中,1的个数是 _2n_。(4) 有向图的边也称为 _ 弧_ 。(5) 图的邻接矩阵表示法是表示 _顶点_之间相邻关系的矩阵。(6) 有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的 _出度_。(7) n个顶点e条边的图若采用邻接矩阵存储,则空

3、间复杂度为: O(n2) 。(8) n个顶点e条边的图若采用邻接表存储,则空间复杂度为: O(n+e) 。(9) 设有一稀疏图G,则G采用 _邻接表_存储比较节省空间。(10) 设有一稠密图G,则G采用 _邻接矩阵_存储比较节省空间。(11) 图的逆邻接表存储结构只适用于 _有向_图。(12) n个顶点的完全无向图有 n(n-1)/2_ 条边。(13) 有向图的邻接表表示适于求顶点的 出度 。(14) 有向图的邻接矩阵表示中,第i列上非0元素的个数为顶点Vi的 入度 。(15) 对于具有n个顶点的图,其生成树有且仅有 n-1 条边。(16) 对n个顶点,e条弧的有向图,其邻接表表示中,需要 n

4、+e 个结点。(17) 从图中某一顶点出发,访遍图中其余顶点,且使每一顶点仅被访问一次,称这一过程为图的 遍历 。(18) 无向图的邻接矩阵一定是 对称 矩阵。(19) 一个连通网的最小生成树是该图所有生成树中 权 最小的生成树。(20) 若要求一个稠密图G的最小生成树,最好用 Prim 算法来求解。三选择题(1)在一个图中,所有顶点的度数之和等于图的边数的( C )倍。 A1/2 B. 1 C. 2 D. 4(2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。 A1/2 B. 1 C. 2 D. 4(3)对于一个具有n个顶点的有向图的边数最多有( B )。 An B

5、n(n-1) Cn(n-1)/2 D2n(4)在一个具有n个顶点的无向图中,要连通全部顶点至少需要( C )条边。 An Bn+1 C n-1 Dn/2(5)有8个结点的有向完全图有( C )条边。 A14 B. 28 C. 56 D. 112(6)深度优先遍历类似于二叉树的( A )。 A先序遍历 B中序遍历 C后序遍历 D层次遍历(7)广度优先遍历类似于二叉树的( D )。 A先序遍历 B中序遍历 C后序遍历 D层次遍历(8)任何一个无向连通图的最小生成树( A )。 A只有一棵 B一棵或多棵 C一定有多棵 D可能不存在(9)无向图顶点v的度是关联于该顶点( B )的数目。 A顶点 B边

6、C序号 D下标(10)有n个顶点的无向图的邻接矩阵是用( B )数组存储。 A一维 Bn行n列 C任意行n列 Dn行任意列(11)对于一个具有n个顶点和e条边的无向图,采用邻接表表示,则表头向量大小为( C )。 An-1 Bn+1 Cn Dn+e(12)在图的表示法中,表示形式唯一的是( A )。 A邻接矩阵表示法 B邻接表表示法 C逆邻接表表示法 D邻接表和逆邻接表表示法(13)在一个具有n个顶点e条边的图中,所有顶点的度数之和等于( C )。 An Be C 2n D2e(14)下列图中,度为3的结点是( B )。 AV1 B. V2 C. V3 D. V4(15)下列图是( A )。

7、A连通图 B. 强连通图 C. 生成树 D. 无环图(16)如下图所示,从顶点a出发,按深度优先进行遍历,则可能得到的一种顶点序列为( D )。A a,b,e,c,d,fB a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b(17)如下图所示,从顶点a出发,按广度优先进行遍历,则可能得到的一种顶点序列为( A )。A. a,b,e,c,d,fB. a,b,e,c,f,dC. a,e,b,c,f,dD. a,e,d,f,c,b(18)最小生成树的构造可使用( A )算法。 Aprim算法 B卡尔算法 C哈夫曼算法 D迪杰斯特拉算法(19)下面关于图的存储结构的叙述中正

8、确的是( A )。A 用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关B 用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关 C 用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关 D 用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关(20)连通分量是( C )的极大连通子图。 A树 B图 C无向图 D有向图四应用题(30分)1有向图如下图所示,画出邻接矩阵和邻接表解:(1)邻接矩阵 1 2 3 4 5(2)邻接表1235243541542 已知一个无向图有6个结点,9条边,这9条边依次为(0,1),(0,2),(0,4),(0,5),(1,2)

9、,(2,3),(2,4),(3,4),(4,5)。试画出该无向图,并从顶点0出发,分别写出按深度优先搜索和按广度优先搜索进行遍历的结点序列。(5分)解:从顶点0出发的深度优先搜索遍历的结点序列:0 1 2 3 4 5(答案不唯一)从顶点0出发的广度优先搜索遍历的结点序列:0 1 2 4 5 3(答案不唯一)3 已知一个无向图的顶点集为:a,b,c,d,e,其邻接矩阵如下,画出草图,写出顶点a出发按深度优先搜索进行遍历的结点序列。(5分)解:(1) (2)深度优先搜索:a b d c e (答案不唯一) 广度优先搜索: a b e d c (答案不唯一) 4网G的邻接矩阵如下,试画出该图,并画出

10、它的一棵最小生成树。解: 最小生成树: 8 11 10 8 3 4 13 7 3 4 75. 已知某图G的邻接矩阵如图,(1)画出相应的图; (2)要使此图为完全图需要增加几条边。解:(1)(2) 完全无向图应具有的边数为:n*(n-1)1/2=4*(4-1)/2=6,所以还要增加2条边(如右图)。6已知如图所示的有向图,请给出该图的:(1) 每个顶点的入/出度;(2) 邻接表;(3) 邻接矩阵。解:(1) (2)顶点123456入度321122出度022313(3)7如图,请完成以下操作:(2) 写出无向带权图的邻接矩阵;(3) 设起点为a,求其最小生成树。 解:(1)邻接矩阵为: (2)起

11、点为a,可以直接由原始图画出最小生成树 8给定下列网G: (1) 画出网G的邻接矩阵;(2) 画出网G的最小生成树。解:(1)邻接矩阵 (2)最小生成树五程序题填空题图G为有向无权图,试在邻接矩阵存储结构上实现删除一条边(v,w)的操作:DeleteArc(G,v,w)。若无顶点v或w,返回“ERROR”;若成功删除,则边数减1,并返回“OK”。(提示:删除一条边的操作,可以将邻接矩阵的第i行全部置0 )解:Status DeleteArc(MGraph &G,char v,char w) dj) ij.adj= 0 ; - ; (或 = ) return OK ; 六算法题1 编写一个无向图

12、的邻接矩阵转换成邻接表的算法。2 以知有n个顶点的有向图邻接表,设计算法分别实现以下功能:(1)求出图G中每个顶点的出度、入度。(2)求出G中出度最大的一个顶点,输出其顶点序号。(3)计算图中度为0的顶点数。1 解:本题思想是逐个扫描邻接矩阵的各个元素,若第i行第j列的元素为1,则相应的邻接表的第i个单链表上增加一个j结点。void trans(int edgesnn,Adjlist adj) int i,j; edgenode *p; for (i=0;in;i+) adji.data=i; adji.link=NULL; for (i=0;in;i+) for (j=0;jadjvex=j

13、; p-next=adji.link; adji.link=p; 2(1)求出度的思想:计算出邻接表中第i个单链表的结点数即可。int outdegree(adjlist adj,int v) int degree=0; edgenode *p; p=adjv.link; while (p!=NULL) degree+; p=p-next; return degree;void printout(adjlist adj,int n) int i,degree; printf(The Outdegree are:n); for(i=0;in;i+) degree=outdegree(adj,i)

14、; printf(%d,%d),i,degree); 求入度的思想:计算出邻接表中结点i的结点数即可。int indegree(adjlist adj,int n,int v) int i,j,degree=0; edgenode *p; for (i=0;iadjvex=v) degree+; p=p-next; return degree;void printin(adjlist adj,int n) int i,degree; printf(The Indegree are:n); for (i=0;in;i+) degree=Indegree(adj,n,i); printf(%d,%

15、d),i,degree); (2)求最大度的算法void maxoutdegree(adjlist adj,int n) int maxdegree=0,maxv=0,degree,i; for (i=0;imaxdegree) maxdegree=degree; maxv=i; printf(maxoutdegree %d,maxvertex=%d,maxdegree,maxv);(3)求度为0的顶点数的算法int outzero(adjlist adj,int n) int num=0,i; for (i=0;in;i+) if (outdegree(adj,i)=0) num+; ret

16、urn num;模拟考题1 已知如图所示的有向图,请给出该图的:(1) 每个顶点的入度和出度;(2) 逆邻接表。 解:(1) (2)顶点123456入度321122出度0223132 给定下列网G: (1) 写出网G以B为顶点的广度优先遍历的序列;(2) 画出网G的最小生成树。解:(1)以B为顶点的广度优先遍历的序列: (2)最小生成树 B A E F C G D3 无向图G如图所示,(1)试画出邻接矩阵;(2)写出从A出发的深度优先遍历的序列。解:(1) 邻接矩阵 (2)从A出发的深度优先遍历的序列: A B D C E G F(不唯一)3 已知图G的邻接表如下,以顶点1为出发点,完成下列问

17、题:12542313524155413(1)写出以顶点1为出发点的广度优先遍历序列;(2)画出以顶点1为出发点的深度优先搜索得到的一棵二叉树。解:(1)广度优先遍历序列:1,2,5,4,3 (2)深度优先搜索得到的一棵二叉树:5 试填空完成深度优先搜索的递归函数。#define MAXVEX 100 / 定义图的最大顶点数struct vertex int num; / 顶点编号 char data; / 顶点的信息;typedef struct graph struct vertex vexsMAXVEX; / 顶点集合 int edgesMAXVEX MAXVEX; / 边的集合sdjmax;int visitedMAXVEX;void dfs(adjlist adj,int v) / 深度优先搜索的递归函数 int i; struct edgenode *p; for (i=1;ilink ; while ( p!=NULL ) if (visitedp-adjvex= 0 ) / 从v的未访问过的邻接点出发进行深度优先搜索 dfs(adjlist, p-adjvex ); p= p-next ; / 找v的下一个邻接点

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1