数据结构II试卷(B)答案2018年6月_第1页
数据结构II试卷(B)答案2018年6月_第2页
数据结构II试卷(B)答案2018年6月_第3页
数据结构II试卷(B)答案2018年6月_第4页
数据结构II试卷(B)答案2018年6月_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.东 北 大 学 继 续 教 育 学 院数据结构 II试 卷(作业考核线上)B 卷(共10页)总分题号一二三四五六七得分一、单选题(每小题2 分,共 10 小题, 20 分)A 1 抽象数据类型的三个组成部分分别为A 数据对象、数据关系和基本操作B 数据元素、逻辑结构和存储结构C 数据项、数据元素和数据类型D 数据元素、数据结构和数据类型D 2 下列各式中,按增长率由小至大的顺序正确排列的是A n ,n!, 2n ,n3/2Bn3/2 ,2n,nlogn , 2100C2n,log n , nlogn ,n3/2D2100,logn, 2 n, n nA 3.已知指针 p 和 q 分别指向某单

2、链表中第一个结点和最后一个结点。假设指针s 指向另一个单链表中某个结点,则在 s 所指结点之后插入上述链表应执行的语句为A. q-next=s-next;s-next=p ;B. s-next=p; q-next=s-next;C. p-next=s-next;s-next=q ;D. s-next=q; p-next=s-next;C 4二维数组 A2010 采用行优先的存储方法,若每个元素占2 个存储单元,且第 1个元素的首地址为200,则元素 A89的存储地址为A374B 576C378D 580B 5设有一个顺序栈的入栈序列是 a、 b、 c,则 3 个元素都出栈的可能不同排列个数为A

3、4B5C. 6D. 7 D 6.设树 T 的度为 4,其中度为 1, 2, 3 和 4 的结点个数分别为4,2,1,1则 T 中的叶子数为A5B 6C7D 8C 7 以下说法不正确的是A 无向图中的极大连通子图称为连通分量1 / 10.B 连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点C 图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点D 有向图的遍历不可采用广度优先搜索 B 8.假设在构建散列表时,采用线性探测解决冲突。若连续插入的n 个关键字都是同义词,则查找其中最后插入的关键字时,所需进行的比较次数为A. n-1B. nC. n+lD. n+2B 9 设置溢出区的文件是A索引

4、非顺序文件BISAM文件CVSAM文件D顺序文件 A 10.已知一组关键字为 25,48,36,72,79,82,23,40,16,35,其中每相邻两个为有序子序列。对这些子序列进行一趟两两归并的结果是 A.25,36,48,72,23,40,79,82,16,35 B.25,36,48,72,16,23,40,79,82,35 C.25,36,48,72,16,23,35,40,79,82 D.16,23,25,35,36,40,48,72,79,82二、填空题(每小题1 分,共 10 小题, 10 分)11. 下面程序段中带下划线的语句的执行次数的数量级是( log 2 n ) 。i=1

5、; WHILE(inest=L-next-next;L-next-next =S)。13无表头结点的链队列Q为空的条件是( Q-real=Q-front=NULL )。14设 Q0.N-1为循环队列,其头、尾指针分别为P 和 R,则队 Q 中当前所含元素个数为( (R-P+N)% N )。15一棵含 999 个结点的完全二叉树的深度为(10)。16在 AOV网 中,存在环意味着某项活动以自己为先决条件;对程序的数据流图来说,它表明存在(死循环)。17. 有向图 G可拓扑排序的判别条件是 ( 不存在环 ) 。18如果结点 A 有 3 个兄弟,而且 B 是 A 的双亲,则 B 的度是(4 )。19

6、应用回溯与分支限界法解决实际问题时,在搜索过程中利用判定函数,也称为(限界函数)。20. 若以 1234 作为双端队列的输入序列, 则既不能由输入受限的双端队列得到,也不能由输2 / 10.出受限的双端队列得到的输出序列是(4231) 。三、应用题(每小题6 分,共 5 小题, 30 分)21比较线性表和栈的基本操作的不同点。解答:主要区别是对插入和删除操作的限制。如线性表允许在表内任一位置进行插入和删除;而队列只允许在表尾一端进行插入,在表头一端进行删除;所以也称队列为受限的线性表。表头为队列头;表尾为队列尾。插 入删 除线性表Insert(L,i,x)Delete(L,i)(1 i n+1

7、)(1 i n)队列Insert(L,n+1,x)Delete(L,1)22有一个二叉树按层次顺序存放在一维数组中,如下图所示:试求:(1)该树的后序遍历序列。( 2)画出该树的后序线索树。123456789 1011ACBE D解答:( 1)后序遍历序列 C E D B A( 2)后序线索树ACBDE23分析顺序查找算法的“监视哨”设置作用解答:为了考虑查找不成功的情况 , 在每次进行关键字的比较前,首先要判断循环变量i 是否数组越界,这对算法来说是必要的。如果每步省略数组下标是否越界的判断,则可以大大提高算法运行的效率。为此,可以利用预留的0 号单元,作为所设的“监视哨”控制循环变量 i

8、的出界。L.elem 0 = k假设数据从后向前比较,监视哨设在数组低端将算法中的判断语句while (i next ) / 表不空且p = L-next;( 1)while( knext; +k; / whileif (p &( 3)) / n!=0 才需要修改指 ha = L-next; /以指 ha 记 a1 点的位置(4)= p-next; /将 b1 点 接在 点之后p-next = NULL; /设 am的后 空q = L-next; /令 q 指向 b 1 点5 / 10.while (q-next)q = q-next; /查找 b n 结点q-next = ha; /(5)

9、/ if(p) / if(m) / exchange_L解答:( 1)k = 1;( 2)查找第 am个结点( 3)p-next( 4)L-next( 5)将第 a1 结点链接到 b n 结点之后五、算法阅读题(本题10 分)27设任意 n 个整数存放于数组A(1:n) 中,阅读算法,指出功能及分析指针i 和 j 的作用。void Arrange(int A,int n) / n个整数存于数组A 中int i=0,j=n-1,x; /数组下标从 0 开始while(ij)while(i0) i+;while(ij & Aj0) j-;if(iA(1:0)中第一个大于0 的数,赋给数组中从A(1

10、:0)-A(1:n)中第一个小于0 的后面第一个数组;2. 把数组中从A(1:0)-A(1:n)中第一个小于0 的数,赋给数组中从A(1:n)-A(1:0)中第一个大于0 的后面第一个数组;(2)指针 i 和 j 的作用:6 / 10.解答:I 为计数器作用,从0 开始递增 1 关系,递增到数组中从低到高第一个小于0 截止J 为计数器作用,从大数开始递减1 关系,递减到数组中从高到低第一个大于0 截止六、算法设计题(本题10 分)28设计算法 purge_Sq 实现删除顺序表SqList 中重复元素,指出其算法的时间复杂度。解答:void purge_Sq( SqList &L ) /删除顺序

11、表 L 中的重复元素k = -1;/ k指示新表的表尾for (i=0; iL.length; +i) /顺序考察表中每个元素j=0;while(jk )/ k=-1表明当前考察的是第一个元素L.elem+k = L.elemi; / forL.length = k+1;/修改表长 / purge_Sq此算法的时间复杂度为O (L.length2 ) 。七、算法设计题(本题10 分)29设计算法从图的邻接表结构转换成邻接矩阵结构的算法。解答:#include #include #include int a100100;/邻接矩阵的载体typedef struct ArcNodeint adjv

12、ex;struct ArcNode *nextarc;ArcNode; /表结点typedef struct VNodechar data;ArcNode *firstarc;VNode,AdjList20;/头结点typedef structAdjList vertices;int vexnum,arcnum;ALGraph;/邻接表int LocateVex(ALGraph G,char e)int i;7 / 10.for(i=0;iG.vexnum;i+)if(G.verticesi.data=e)return i;/找到后返回 ireturn -1;void CreatAdList(

13、ALGraph &G)/根据输入的有向图G的顶点数及边数,建立图G的邻接表int i,j,k;char v1,v2;ArcNode *s,*p;scanf(%d%d,&G.vexnum,&G.arcnum);getchar();for(i=0;iG.vexnum;i+) /初始化头结点scanf(%c,&G.verticesi.data);getchar();G.verticesi.firstarc=NULL;for(i=0;iG.vexnum;i+)/输出一遍这些头printf(%c ,G.verticesi.data);printf(n);for(k=0;kadjvex=j;s-nextarc=NULL;p=G.verticesi.firstarc;if(!p)G.verticesi.firstarc = s;else8 / 10.while(p-nextarc)p=p-nextarc;p-nextarc=s;void trans(ALGraph G)/转换函数int i,j;ArcNode *p;for(i=0;i=G.vexnum;i+)/ 先初始化,全部赋值为 0 for(j=0;j=G.vexnum;j+)aij=0;for(i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论