《数据结构》复习题及解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》复习题及解答
1.关键路径是指AOE(Activity On Edge)网中________。
A.最长的回路
B.最短的回路
C.从源点到汇点(结束顶点)的最长路径
D.从源点到汇点(结束顶点)的最短路径
2.以下序列中不符合堆定义的是________。
A.(102,87,100,79,82,62,84,42,22,12,68)
B.(102,100,87,84,82,79,68,62,42,22,12)
C.(12,22,42,62,68,79,82,84,87,100,102)
D.(102,87,42,79,82,62,68,100,84,12,22)
3.一个具有767个结点的完全二叉树,其叶子结点个数为____。
A. 383
B. 384
C. 385
D. 386
4.若一个具有n个结点、k条边的非连通无向图是一个森林(n>k),则该森林中必有____棵树。
A.k
B. n
C. n-k
D. n+k
5.将两个长度为n 的递增有序表归并成一个长度为2n 的递增有序表,最少需要进行关键字比较____次。
A. 1
B. n-1
C. n
D. 2n
6.已知AOE网中顶点v1~v7分别表示7个事件,弧al~a10分别表示10个活动,弧上的数值表示每个活动花费的时间,如下图所示。那么,该网的关键路径的长度为(1),活动a6的松驰时间(活动的最迟开始时间-活动的最早开始时间)为(2)。
(1) A. 7 B. 9 C. 10 D. 11 (2) A. 3 B. 2 C. 1 D. 0
7.对n个元素进行快速排序时,最坏情况下的时间复杂度为____。
A.O(1og2n) B.O(n) C.O(nlog2n) D.O (n2)
8.任何一个基于“比较”的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为____。
A.10 B.11 C.21 D.36
参考答案及解析
1.答案:C 解析:AOE网是一个有向图,通常用来估算工程的完成时间,图中的顶点表
示事件,有向边表示活动,边上的权表示完成这一活动所需的时间。AOE网没有有向回路,存在唯一的入度为零的开始顶点,及唯一的出度为零的结束顶点。对AOE网最关心的两个问题:完成整个工程至少需要多少时间?那些活动是影响工程进度的关键?这就引出两个概念:关键路径和关键活动。从开始顶点到结束顶点的最长路径是关键路径,路径的长度也是工程完成的最少时间。关键路径上的所有活动是关键活动,关键活动的最大特征是:该活动的最早开始时间等于该活动所允许的最迟开始时间。关键活动拖延时间,整个工程也要拖延时间。求关键路径只需求出起点到终点的最长路径即可,注意关键路径不是唯一的。
复习提示:类似的考点还有:AOV网、最短路径、最小生成树。
2. 答案:D 解析:判断堆的办法就是把序列看成是一棵完全二叉树,若树中的所有非终端结点的值均不大于(或不小于)其左右孩子的结点的值,则该序列为堆。
复习提示:同学们复习过程中对定义一定要清楚,这是拿分的关键。
3. 答案:B 解析:可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2,合并成一个公式:n0=」(n+1)/2」,就可根据完全二叉树的结点总数计算出叶子结点数。本题计算得:384。
复习提示:该记得公式要记住,临时推导也可以,但容易耽误时间。
4. 答案:C解析:假设该森林中有s棵树:T1,T2,……,TS ,且每个Ti有ni 个结点,ki条边(i=1,2,……,S),由树的等价条件可知:ki=ni-1,则k=k1+k2+……+ks=(n1-1)+(n2-1)+……+(ns-1)=n-s,故s=n-k,所以该森林中必有n-k棵树。
复习提示:该题如果清楚树的等价条件,可以很容易的解出。若不清楚,则无法。同学们也可以画出一个具体的非连通无向图的森林,如:5个结点3条边2棵树的森林,也可帮助判断。抽象问题具体化是作选择题的一个重要方法。
5. 答案:C解析:同学们首先要明白两个前提:一是要归并的两个表都是递增有序的且长度都为n,二是题目问的是最少的关键字比较次数,即最好的情况下的比较次数。而最好的情况应该是:一个表的所有关键字都大于(或小于)另一个表的所有关键字,如:(1 2 3 4)与(5 6 7 8)。比较的时候有两个指针分别指向两个表的第一个元素,由于一个表的关键字要都大于另一个表的关键字,所以关键字小的表中的元素挨个与关键字大的表的第一个元素比较后,先被并入到新表中,这时关键字大的表的指针还是指向第一个元素没变,此时只需将关键字大的表复制到新表中即可。所以花费的比较次数就是关键字小的表长,也就是n。
6. 答案:(1)C (2)A 解析:(1)关键路径就是从起点到终点最长的路径。直接从图中找即可,v1 v4 v5 v7就是一条,长度为10。(2)从关键路径中可以看出,v1到v4需要花费的时间为6,活动a6至少要在经过时间2后才能开始,最晚开始时间为:6-2=4 ,则活动a6的松驰时间是4-2=2。
7.答案:D
解析:若进行快速排序的n个元素按关键字有序或基本有序时,快速排序将退化为起泡排序,时间复杂度为O (n2)。
复习提示:这是一道概念题,也是同学们的拿分题,同学们对概念一定要清楚。
8.答案:A解析:内部排序中除了基数排序之外,都是基于“关键字间的比较”进行排序的。
任何一个借助“比较”进行排序的算法,在最坏情况下所需的比较次数至少为[1og2(n!)],由此可解。具体解释同学们可参考严蔚敏、吴伟民的《数据结构》291页。