《(全)数据结构考试内部题库含答案解析2023版.docx》由会员分享,可在线阅读,更多相关《(全)数据结构考试内部题库含答案解析2023版.docx(18页珍藏版)》请在第壹文秘上搜索。
1、数据结构考试内部题库含答案解析(全考点)1、已知带权连通无向图G=(V,E),其中V=l,2,3,V4V5v6v7v1V2.10V1V3V3rffjIcetlfUlfJ,lr6)6,(5,7)7,(%,”7)3(注:顶点偶对括号外的数据表示边上的权值),从源点“1到顶点”7的最短路径上经过的顶点序列是()。.V1V2V5V7 A.,OlU3。4。6。7 D.,.0力。4。5S JIlltV2V5V4VQV7LIiiii解析题干内容所述的图G如上图所示。A,B,C,D对应的路径长度分别为18,13,15,24o应用Dijkstra算法求出最短路径为B所示路径。答案:B2、下面的()方法可以判断出
2、一个有向图是否有环(回路)。I、深度优先遍历口、拓扑排序m、求最短路径iv、求关键路径.A:I、口、IV.B:I、田、IV.C:I、口、In.D:全部可以解析使用深度优先遍历,若从有向图上的某个顶点U出发,在DFS(U)结束之前出现一条从顶点V到U的边,由于V在生成树上是u的子孙,则图中必定存在包含u和V的环,因此深度优先遍历可以检测一个有向图是否有环。拓扑排序时,当某顶点不为任何边的头时才能加入序列,存在环时环中的顶点一直是某条边的头,不能加入拓扑序列。也就是说,还存在无法找到下一个可以加入拓扑序列的顶点,则说明此图存在回路。求最短路径是允许图有环的。关键路径能否判断一个图有环,则存在一些争
3、议。关键路径本身虽然不允许有环,但求关键路径的算法本身无法判断是否有环,判断是否有环是求关键路径的第一步一一拓扑排序。答案:A3、若一个有向图的顶点不能排在一个拓扑序列中,则可判定该有向图()。 A:是一个有根的有向图.B:是一个强连通图.C:含有多个入度为O的顶点 D:含有顶点数目大于1的强连通分量若不存在拓扑排序,则表示图中必定存在回路,该回路构成一个强连通分量(顶点数目大于1的强连通分量中必然存在回路)。答案:D4、以下关于拓扑排序的说法中,错误的是()0I、若某有向图存在环路,则该有向图一定不存在拓扑排序口、在拓扑排序算法中为暂存入度为零的顶点,可以使用栈,也可以使用队列卬、若有向图的
4、拓扑有序序列唯一,则图中每个顶点的入度和出度最多为1 a:xm.B:口、HI C: D:In解析I中,对于一个存在环路的有向图,使用拓扑排序算法运行后,肯定会出现有环的子图,在此环中无法再找到入度为O的结点,拓扑排序也就进行不下去。II中,注意,若两个结点之间不存在祖先或子孙关系,则它们在拓扑序列中的关系是任意的(即前后关系任意),因此使用栈和队列都可以,因为进栈或队列的都是入度为O的结点,此时入度为O的所有结点是没有关系的。印中,若拓扑有序序列唯一,则很自然地让人联想到一个线性的有向图(错误),下图的拓扑序列也是唯一的,但度却不满足条件。答案:D5、若一个有向图的顶点不能排成一个拓扑序列,则
5、判定该有向图()。 A:含有多个出度为O的顶点.B:是个强连通图.C:含有多个入度为O的顶点 D:含有顶点数大于1的强连通分量一个有向图中的顶点不能排成一个拓扑序列,表明其中存在一个顶点数目大于1的回路,该回路构成一个强连通分量,从而答案选Do答案:D6、下图所示有向图的所有拓扑序列共有()个。 A:4 B:6 C:5 D:7解析本图的拓扑排序序列有Abcfdeg,ABCDFEG,ABCDEFG,ABDCFEG和ABDCEFGo答案:C7、若一个人有向图具有有序的拓扑排序序列,则它的邻接矩阵必定为()。.A:对称 B:稀疏 C:三角 D:一般解析对有向图中的顶点适当地编号,使其邻接矩阵为三角矩
6、阵且主对角元素全为零的充分必要条件是,该有向图可以进行拓扑排序。若一个有向图的邻接矩阵为三角矩阵(对角线上元素为O),则图中必不存在环,因此其拓扑序列必然存在。答案:C8、下列关于图的说法中,正确的是()O工、有向图中顶点V的度等于其邻接矩阵中第V行中1的个数II、无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵卬、在图G的最小生成树Gl中,某条边的权值可能会超过未选边的权值IV、若有向无环图的拓扑序列唯一,则可以唯一确定该图A:I、II和In B:In和IV C:HI D:IV解析有向图邻接矩阵的第V行中1的个数是顶点V的出度,而有向图中顶点的度为入度与出度之和,I错。无向图
7、的邻接矩阵一定是对称矩阵,但当有向图中任意两个顶点之间有边相连,且是两条方向相反的有向边(无向图也可视为有两条方向相反的有向边的特殊有向图)时,有向图的邻接矩阵也是一个对称矩阵,II错。最小生成树中的n-1条边并不能保证是图中权值最小的n-1条边,因为权值最小的n-1条边并不一定能使图连通。在下图中,左图的最小生成树如右图所示,权值为3的边并不在其最小生成树中。有向无环图的拓扑序列唯一并不能唯一确定该图。在下图所V1V2V3V4示的两个有向无环图中,拓扑序列都为1,IV错。答案:C9、若某带权图为G=(V,E),其中V=l,2,3,4,。5。6So8。9。叫2八/1ItlltJ9匚76,,2。
8、53,6/3。43,4,“53,/407,4,,564,5,也2,,邛1。4,,7。95,8。92,2(注:边括号外的数据表示边上的权值),则G的关键路径的长度为()。 B:20 C:21 D:22解析画出题目所表示的图如下,可得到关键路径的长度为21.图中所示的两条路径都是关键路径。答案:C10、下面关于求关键路径的说法中,不正确的是()。 A:求关键路径是以拓扑排序为基础的 B:一个事件的最早发生时间与以该事件为始的弧的活动的最早开始时间相同 C:一个事件的最迟发生时间是以该事件为尾的弧的活动的最迟开始时间与该活动的持续时间的差 D:关键活动一定位于关键路径上解析一个事件的最迟发生时间等于
9、Mirl以该事件为尾的弧的活动的最迟开始时间,最迟结束时间与该活动的持续时间的差。答案:C1、对下图进行拓扑排序,可得不同拓扑序列的个数是()。 A:4 B:3 C:2 D:1解析可以得到3种不同的拓扑序列,即abced,abecd和aebcdo答案:B2、下列关于最小生成树的叙述中,正确的是()。工、最小生成树的代价唯一口、所有权值最小的边一定会出现在所有的最小生成树中m、使用Prim算法从不同顶点开始得到的最小生成树一定相同IV、使用Prim算法和Kruskal算法得到的最小生成树总不相同.A:仅I.B:仅II.c:仅I、m.D:仅口、IV解析最小生成树的树形可能不唯一(因为可能存在权值相
10、同的边),但代价一定是唯一的,工正确。若权值最小的边有多条并且构成环状,则总有权值最小的边将不出现在某棵最小生成树中,口错误。设N各结点构成环,N-I条边权值相等,另一条边权值较小,则从不同的顶点开始Prim算法会得到N-I种不同的最小生成树,HI错误。当最小生成树唯一时(各边的权值不同),Prim算法和KrUSkal算法得到的最小生成树相同,IV错误。答案:A3、对下图所示的有向带权图,若采用Dijkstra算法求从源点a到其他各顶点的最短路径,则得到的第一条最短路径的目标顶点是b,第二条最短路径的目标顶点是c,后续得到的其余各最短路径的目标顶点依次是(). A:d,e,f B:ezdzf
11、C:f,dze D:f,e,d解析从a到各顶点的最短路径的求解过程如下:后续目标顶点依次为td,eo答案:C4.下列AOE网表示一项包含8个活动的工程,通过同时加快若干活动的进度可以缩短整个工程的工期。下列选项中,加快其进度就可以缩短工程工期的是()。在这里插入图片描述解析找出AoE网的全部关键路径为bdcg、bdeh和bfho根据定义,只有关键路径上的活动时间同时减少时,才能缩短工期。选项A、B和D并不包括在所有的关键路径中,只有C包含,因此只有加快f和d的进度才能缩短工期。答案:C5、对下图所示的有向图进行拓扑排序,得到的拓扑序列可能是()。 A:3,1,2,4,5,6 B:3,124,6
12、,5 C:3,1,4,2,5,6 D:3,1,4,2,6,5解析按照拓扑排序的算法,每次都选择入度为O的结点从图中删除,此图中一开始只有结点3的入度为O;删除结点3后,只有结点1的入度为O删除结点1后,只有结点4的入度为O;删除结点4后,结点2和结点6的入度都为O,此时选择删除不同的结点,会得出不同的拓扑序列,分别处理完毕后可知可能的拓扑序列为3,1,4,2,6,5和3,1,4,6,2,5,选Do答案:D6、若对n个顶点、e条弧的有向图采用邻接表存储,则拓扑排序算法的时间复杂度是()。.A:0(n) B:O(n+e) D:0(e)解析采用邻接表作为AOV网的存储结构进行拓扑排序,需要对n个顶点
13、做进栈、出栈、输出各一次,在处理e条边时,需要检测这n个顶点的边链表的e个边结点,共需要的时间代价为O(n+e)若采用邻接矩阵作为AOV网的存储结构进行拓扑排序,在处理e条边时需对每个顶点检测相应矩阵中的某一行,寻找与它相关联的边,以便对这些边的入度减1,需要的时n2间代价为0()o答案:B7、使用Dijkstra算法求下图中从顶点1到其余各顶点的最短路径,将当前找到的从顶点1到顶点2,3,4,5的最短路径长度保存在数组dist中,求出第二条最短路径后,dist中的内容更新为()。 A:26,3,14,6 B:25,3,14,6 C:21,3,14,6 D:15,3,14,6解析在执行Dijk
14、stra算法时,首先初始化dist,若顶点1到顶点i(i=2,3,4,5)有边,就初始化为边的权值:若无边,就初始化为8;初始化顶点集S只含顶点LDijkstra算法每次选择一个到顶点1距离最近的顶点j加入顶点集S,并判断由顶点1绕行顶点j后到任一顶点k是否距离更短,若距离更短(即distj+arcsjkdistk),则将distx更新为distj+arcsjk;重复该过程,直至所有顶点都加入顶点集S。数组dist的变化过程如下图所示,可知将第二个顶点5加入顶点集S后,数组dist更新为21,3,14,6,故选C。答案:C8、评价算法的标准包括如下几方面:正确性健壮性、高效率及低存储量。 A:可靠性 B:可行性.C:可读性 D:可能性解析算法设计的要求:.正确性.可读性健壮性效率与低存储量答案:C9、一个有n个结点的图,最少有一个连通分量。.A:O.B:1.C:n-1.D:n解析最少是1个,这种情况下,它本身就是一个连通图;最多是n个,这种情况下,它由n个分散的点组成的一个图。答案:B10、对05,46,13