计算机专业基础综合数据结构(图)历年真题试卷汇编3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机专业基础综合数据结构(图)历年真题试卷汇编3
(总分:58.00,做题时间:90分钟)
一、综合题(总题数:23,分数:58.00)
1.给出从顶点v1开始,对图G用深度优先搜索法进行遍历时的顶点序列;(2)给出从顶v1,1开始,对图G用广度优先搜索法进行遍历时的顶点序列。【复旦大学1998六(10分)】
__________________________________________________________________________________________ 正确答案:(正确答案:(1)v 1 v 2 v 4 v 3 v 5 v 6 (2) v 1 v 2 v 3 v 4 v 5 v 6)
给出图G 4.00)
(1).画出G的邻接表表示图;
__________________________________________________________________________________________
正确答案:(
(2).根据你画出的邻接表,以顶点①为根,画出G的深度优先生成树和广度优先生成树。【南开大学1997五(14分)】【烟台大学2007四、3(15分)】
__________________________________________________________________________________________
正确答案:(
2.已知一个有向图如图所示,则从顶点a出发进行深度优先遍历,写出所有可能得到的DFS
京交通大学2006四、4(5分)】
__________________________________________________________________________________________ 正确答案:(正确答案:共8个:adbcfe,adbfce,adcbfe,adcebf adcefb,adebcj,adebfc,adefbc)
2000计算机应用六(10分)】(分数:4.00)
(1).如果每个指针需要4字节,每个顶点的标号占2字节,每条边的权值占2字节。下图采用哪种表示法所需的空间较多?为什么?
__________________________________________________________________________________________ 正确答案:(正确答案:邻接矩阵:(6*6个元素)*2字节/元素=72字节邻接表:表头向量6*(4+2)+边结点9*(2+2+4)*2=180字节邻接多重表:表头向量6*(4+2)+边结点9*(2+2+2+4+4)=162字节邻接表占用空间较多,因为边较多,边结点又是边数的2倍,一般来说,邻接矩阵所占空间与边个数无关(不考虑压缩存储),适合存储稠密图,而邻接表适合存储稀疏图。邻接多重表边结点个数等于边数,但结点中增加了一个顶点下标域和一个指针域。)
(2).写出下图从顶点1开始的:DFS树。
__________________________________________________________________________________________
正确答案:(正确答案:因未确定存储结构,从顶点1开始的DFS
3.如下所示的连通图,请画出:(1)以顶点①为根的深度优先生成树;(5分)(2)如果有关节顶点,请找出
所有的关节顶点。(5分)【清华大学l 998七(10分)】
__________________________________________________________________________________________
正确答案:(正确答案:(1)未确定存储结构,其DFS树不唯一,其中之一(按邻接点逆序排列)
关节顶点有3,1,8,7,2。)
A,B,…,F各表示一数据元素,若两项目不能同时举行,则将其连线(约束条件)。(分数:4.00)
(1).根据此表及约束条件画出相应的图状结构模型,并画出此图的邻接表结构;
__________________________________________________________________________________________
正确答案:(
(2).写出从元素A出发按“广度优先搜索”算法遍历此图的元素序列。【北京科技大学1999五2000五(12分)】
__________________________________________________________________________________________ 正确答案:(正确答案:AFEDBC)
4.从顶点A出发,求它的深度优先生成树。(2)从顶点E出发,求它的广度优先生成树。(3)根据普利姆(Prim)算法,求它的最小生成树。【上海交通大学1999六(12分)】
__________________________________________________________________________________________ 正确答案:(正确答案:设该图用邻接表存储结构存储,顶点的邻接点按顶点编号升序排列。(1)ABGFDEC
(2)EACFBDG (3))
5.在什么情况下,Prim算法与Kruskual算法生成不同的MST?【西安电子科技大学2000计算机应用一、11(5分)】
__________________________________________________________________________________________ 正确答案:(正确答案:在边有相等权值(特别是边的权值较小且相等)时可能会生成不同的MST。)
6.已知一个无向图如下图所示,要求分别用Prim和Kruskal算法生成最小生成树(假设以①为起点,试画
出构造过程)。【哈尔滨工业大学2000九(8分)】
__________________________________________________________________________________________ 正确答案:(正确答案:设连通网N=(V,{E}),设V是N的顶点的集合,E是N上边的集合。Prim算法从U={u 0 }{u 0∈V),TE={}开始,重复执行下述操作:在所有u∈U,v∈V—U的边(u,v)∈E中找一条代价最小的边(u 0,v 0 )并入集合TE,同时v 0并入U,直至U=V为止。此时,TE中必有n一1条边,则T=(U,|TE|)为N的最小生成树。Prim算法适合边稠密的情况,算法的时间复杂度为O(n 2 )。Kruskal算法:开始令最小生成树的初始状态为只有刀个顶点而无边的非连通图T=(V,{}),图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入T中,否则舍去此边而选择下一条代价最小的边,直到T中所有顶点都在同一连通分量上为止。算法的时间复杂度为
O(eloge),适合于求稀疏网的最小生成树。Prim算法构造最小生成树的步骤如26题所示,为节省篇幅,这里不再用Prim方法做,而是用Kruskal算法来构造最小生成树,过程过程如下(下图也可选(2,4)代替
(3,4),选(5,6)。代替(1,5)):)
7.1994五(8分)】
__________________________________________________________________________________________ 正确答案:(正确答案:设顶点集合为{1,2,3,4,5,6},由下边的逻辑图可以看出,在{1,2,3}和{4,
5,6}回路中,各任选两条边,加上边(2,4),则可构成9棵不同的最小生成树。)
8.已知顶点1~6和输入边与权值的序列(如右图所示):每行三个数表示一条边的两个端点和其权值,共
11行。请你:(1)采用邻接多重表表示该无向网,用类Pascal语言描述该数据结构,画出存储结构示意图,要求符合在边结点链表头部插入的算法和输入序列的次序。(2)分别写出从顶点1出发的深度优先和广度优先遍历顶点序列,以及相应的生成树。(3)按Prim算法列表计算,从顶点1始求最小生成树,并图示该树。【北京工业大学1999四(20分)】