数据结构单元8练习参考答案.doc
《数据结构单元8练习参考答案.doc》由会员分享,可在线阅读,更多相关《数据结构单元8练习参考答案.doc(13页珍藏版)》请在咨信网上搜索。
单元练习8 一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳ ) (√)(1)图可以没有边,但不能没有顶点。 (ㄨ)(2)在无向图中,(V1,V2)与(V2,V1)是两条不同的边。 (ㄨ)(3)邻接表只能用于有向图的存储。 (√)(4)一个图的邻接矩阵表示是唯一的。 (ㄨ)(5)用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。 (ㄨ)(6)有向图不能进行广度优先遍历。 (√)(7)若一个无向图的以顶点V1为起点进行深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。 (√)(8)存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的上三角(或下三角)部分就可以了。 (ㄨ)(9)用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。 (√)(10)若一个无向图中任一顶点出发,进行一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。 二.填空题 (1) 图常用的存储方式有邻接矩阵和 邻接表 等。 (2) 图的遍历有: 深度优先搜 和广度优先搜等方法。 (3) 有n条边的无向图邻接矩阵中,1的个数是 _2n____。 (4) 有向图的边也称为 _ 弧___ 。 (5) 图的邻接矩阵表示法是表示 __顶点____之间相邻关系的矩阵。 (6) 有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的 __出度____。 (7) n个顶点e条边的图若采用邻接矩阵存储,则空间复杂度为: 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+e 个结点。 (17) 从图中某一顶点出发,访遍图中其余顶点,且使每一顶点仅被访问一次,称这一过程为图 的 遍历 。 (18) 无向图的邻接矩阵一定是 对称 矩阵。 (19) 一个连通网的最小生成树是该图所有生成树中 权 最小的生成树。 (20) 若要求一个稠密图G的最小生成树,最好用 Prim 算法来求解。 三.选择题 (1)在一个图中,所有顶点的度数之和等于图的边数的( C )倍。 A.1/2 B. 1 C. 2 D. 4 (2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。 A.1/2 B. 1 C. 2 D. 4 (3)对于一个具有n个顶点的有向图的边数最多有( B )。 A.n B.n(n-1) C.n(n-1)/2 D.2n (4)在一个具有n个顶点的无向图中,要连通全部顶点至少需要( C )条边。 A.n B.n+1 C. n-1 D.n/2 (5)有8个结点的有向完全图有( C )条边。 A.14 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.边 C.序号 D.下标 (10)有n个顶点的无向图的邻接矩阵是用( B )数组存储。 A.一维 B.n行n列 C.任意行n列 D.n行任意列 (11)对于一个具有n个顶点和e条边的无向图,采用邻接表表示,则表头向量大小为( C )。 A.n-1 B.n+1 C.n D.n+e (12)在图的表示法中,表示形式唯一的是( A )。 A.邻接矩阵表示法 B.邻接表表示法 C.逆邻接表表示法 D.邻接表和逆邻接表表示法 (13)在一个具有n个顶点e条边的图中,所有顶点的度数之和等于( C )。 A.n B.e C. 2n D.2e (14)下列图中,度为3的结点是( B )。 1 2 3 5 4 A.V1 B. V2 C. V3 D. V4 1 2 3 5 4 (15)下列图是( A )。 A.连通图 B. 强连通图 C. 生成树 D. 无环图 (16)如下图所示,从顶点a出发,按深度优先进行遍历,则可能得到的一种顶点序列为( D )。 a b c f d e A. a,b,e,c,d,f B. a,c,f,e,b,d C. a,e,b,c,f,d D. a,e,d,f,c,b (17)如下图所示,从顶点a出发,按广度优先进行遍历,则可能得到的一种顶点序列为( A )。 a b c f d e A. a,b,e,c,d,f B. a,b,e,c,f,d C. a,e,b,c,f,d D. a,e,d,f,c,b (18)最小生成树的构造可使用( A )算法。 A.prim算法 B.卡尔算法 C.哈夫曼算法 D.迪杰斯特拉算法 (19)下面关于图的存储结构的叙述中正确的是( A )。 A. 用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关 B. 用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关 C. 用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关 D. 用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关 (20)连通分量是( C )的极大连通子图。 A.树 B.图 C.无向图 D.有向图 四.应用题(30分) 1.有向图如下图所示,画出邻接矩阵和邻接表 ① ②②②② ③②②② ④②②② ⑤②②② 解: (1)邻接矩阵 1 2 3 4 5 (2)邻接表 1 2 3 5 ∧ 2 4 ∧ 3 5 ∧ 4 1 ∧ 5 4 ∧ 2. 已知一个无向图有6个结点,9条边,这9条边依次为(0,1),(0,2),(0,4),(0,5),(1,2),(2,3),(2,4),(3,4),(4,5)。试画出该无向图,并从顶点0出发,分别写出按深度优先搜索和按广度优先搜索进行遍历的结点序列。(5分) 2 3 1D 0 4 5 解: 从顶点0出发的深度优先搜索遍历的结点序列:0 1 2 3 4 5(答案不唯一) 从顶点0出发的广度优先搜索遍历的结点序列:0 1 2 4 5 3(答案不唯一) 3. 已知一个无向图的顶点集为:{a,b,c,d,e},其邻接矩阵如下,画出草图,写出顶点a出发按深度优先搜索进行遍历的结点序列。(5分) 解: a c b e d (1) (2)深度优先搜索: a b d c e (答案不唯一) 广度优先搜索: a b e d c (答案不唯一) 4.网G的邻接矩阵如下,试画出该图,并画出它的一棵最小生成树。 2 5 4 3 1 2 5 4 3 1 解: 最小生成树: 8 11 10 8 3 4 13 7 3 4 7 5. 已知某图G的邻接矩阵如图, (1)画出相应的图; (2)要使此图为完全图需要增加几条边。 解: 1 3 4 2 4 2D 3 1 (1) (2) 完全无向图应具有的边数为:n*(n-1)1/2=4*(4-1)/2=6,所以还要增加2条边(如右图)。 6.已知如图所示的有向图,请给出该图的: (1) 每个顶点的入/出度; (2) 邻接表; (3) 邻接矩阵。 解: (1) (2) 顶点 1 2 3 4 5 6 入度 3 2 1 1 2 2 出度 0 2 2 3 1 3 (3) 7.如图,请完成以下操作: (2) 写出无向带权图的邻接矩阵; (3) 设起点为a,求其最小生成树。 解: (1)邻接矩阵为: (2)起点为a,可以直接由原始图画出最小生成树 8.给定下列网G: (1) 画出网G的邻接矩阵; (2) 画出网G的最小生成树。 解: (1)邻接矩阵 (2)最小生成树 F B ED A C G D 五.程序题填空题 图G为有向无权图,试在邻接矩阵存储结构上实现删除一条边(v,w)的操作:DeleteArc(G,v,w)。若无顶点v或w,返回“ERROR”;若成功删除,则边数减1,并返回“OK”。 (提示:删除一条边的操作,可以将邻接矩阵的第i行全部置0 ) 解: Status DeleteArc(MGraph &G,char v,char w) //在邻接矩阵表示的图G上删除边(v,w) { if ((i=LocateVex(G,v))<0) return ERROR ; if ((j=LocateVex(G,w))<0) return ERROR ; if (G.arcs[i][j].adj) { G.arcs[i][j].adj= 0 ; G.arcnum -- ; (或 G.arcnum=G.arcnum-1 ) } return OK ; } 六.算法题 1. 编写一个无向图的邻接矩阵转换成邻接表的算法。 2. 以知有n个顶点的有向图邻接表,设计算法分别实现以下功能: (1)求出图G中每个顶点的出度、入度。 (2)求出G中出度最大的一个顶点,输出其顶点序号。 (3)计算图中度为0的顶点数。 1. 解:本题思想是逐个扫描邻接矩阵的各个元素,若第i行第j列的元素为1,则相应的邻接表的第i个单链表上增加一个j结点。 void trans(int edges[n][n],Adjlist adj) { int i,j; edgenode *p; for (i=0;i<n;i++) { adj[i].data=i; adj[i].link=NULL; } for (i=0;i<n;i++) for (j=0;j<n;j++) { if(edges[i][j]==1) { p=(edgenode *) malloc (sizeof(edgenode)); p->adjvex=j; p->next=adj[i].link; adj[i].link=p; } } } 2. (1)求出度的思想:计算出邻接表中第i个单链表的结点数即可。 int outdegree(adjlist adj,int v) { int degree=0; edgenode *p; p=adj[v].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;i<n;i++) { degree=outdegree(adj,i); printf("(%d,%d)",i,degree); } } 求入度的思想:计算出邻接表中结点i的结点数即可。 int indegree(adjlist adj,int n,int v) { int i,j,degree=0; edgenode *p; for (i=0;i<n;i++) { p=adj[i].link; while (p!=NULL) { if (p->adjvex==v) degree++; p=p->next; } } return degree; } void printin(adjlist adj,int n) { int i,degree; printf("The Indegree are:\n"); for (i=0;i<n;i++) { degree=Indegree(adj,n,i); printf("(%d,%d)",i,degree); } } (2)求最大度的算法 void maxoutdegree(adjlist adj,int n) { int maxdegree=0,maxv=0,degree,i; for (i=0;i<n;i++) { degree=outdegree(adj,i); if (degree>maxdegree) { 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;i<n;i++) { if (outdegree(adj,i)==0) num++; } return num; } 模拟考题 1. 已知如图所示的有向图,请给出该图的: (1) 每个顶点的入度和出度; (2) 逆邻接表。 解: (1) (2) 顶点 1 2 3 4 5 6 入度 3 2 1 1 2 2 出度 0 2 2 3 1 3 2. 给定下列网G: (1) 写出网G以B为顶点的广度优先遍历的序列; (2) 画出网G的最小生成树。 解:(1)以B为顶点的广度优先遍历的序列: (2)最小生成树 F B ED A C G D B A E F C G D 3. 无向图G如图所示,(1)试画出邻接矩阵;(2)写出从A出发的深度优先遍历的序列。 D C AD B G E F 解:(1) 邻接矩阵 (2)从A出发的深度优先遍历的序列: A B D C E G F(不唯一) 3. 已知图G的邻接表如下,以顶点1为出发点,完成下列问题: 1 2 5 4 ∧ 2 3 1 ∧ 3 5 2 ∧ 4 1 5 ∧ 5 4 1 3 ∧ (1)写出以顶点1为出发点的广度优先遍历序列; (2)画出以顶点1为出发点的深度优先搜索得到的一棵二叉树。 解:(1)广度优先遍历序列:1,2,5,4,3 (2)深度优先搜索得到的一棵二叉树: 5 3 2D 1 4 5 3 2D 1 4 5. 试填空完成深度优先搜索的递归函数。 #define MAXVEX 100 // 定义图的最大顶点数 struct vertex { int num; // 顶点编号 char data; // 顶点的信息 }; typedef struct graph { struct vertex vexs[MAXVEX]; // 顶点集合 int edges[MAXVEX][ MAXVEX]; // 边的集合 }sdjmax; int visited[MAXVEX]; void dfs(adjlist adj,int v) // 深度优先搜索的递归函数 { int i; struct edgenode *p; for (i=1;i<=n;i++) visited[i]=0; // 给visited数组赋初值0 visited[v]=1; cin v; // 取v的边的表头指针 p= adj[v]->link ; while ( p!=NULL ) { if (visited[p->adjvex]== 0 ) // 从v的未访问过的邻接点出发进行深度优先搜索 dfs(adjlist, p->adjvex ); p= p->next ; // 找v的下一个邻接点 } } Welcome To Download !!! 欢迎您的下载,资料仅供参考!- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 单元 练习 参考答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文