数据结构II试卷B孟凡荣.doc

上传人:s****u 文档编号:12754745 上传时间:2020-05-22 格式:DOC 页数:10 大小:93.02KB
返回 下载 相关 举报
数据结构II试卷B孟凡荣.doc_第1页
第1页 / 共10页
数据结构II试卷B孟凡荣.doc_第2页
第2页 / 共10页
数据结构II试卷B孟凡荣.doc_第3页
第3页 / 共10页
点击查看更多>>
资源描述
东 北 大 学 继 续 教 育 学 院 数据结构II 试 卷(作业考核 线上) B 卷学习中心: 院校学号: 姓名 (共 页) 总分题号一二三四五六七得分一、单选题(每小题2分,共10小题,20分)A 1抽象数据类型的三个组成部分分别为 A数据对象、数据关系和基本操作 B数据元素、逻辑结构和存储结构 C数据项、数据元素和数据类型 D数据元素、数据结构和数据类型D 2下列各式中,按增长率由小至大的顺序正确排列的是 A,n!,2n ,n3/2 Bn3/2,2n,nlogn,2100 C2n,log n,nlogn,n3/2 D2100,logn, 2n, nnA 3. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针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的存储地址为A374 B576C378 D580B 5设有一个顺序栈的入栈序列是a、b、c,则3个元素都出栈的可能不同排列个数为 A4 B5 C. 6 D. 7D 6. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为 A5 B6 C7 D8C 7以下说法不正确的是 A无向图中的极大连通子图称为连通分量 B连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点 C图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点 D有向图的遍历不可采用广度优先搜索B 8. 假设在构建散列表时,采用线性探测解决冲突。若连续插入的n个关键字都是同义词,则查找其中最后插入的关键字时,所需进行的比较次数为 A. n-1B. n C. n+lD. n+2B 9设置溢出区的文件是 A索引非顺序文件 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,35B.25,36,48,72,16,23,40,79,82,35C.25,36,48,72,16,23,35,40,79,82D.16,23,25,35,36,40,48,72,79,82二、填空题(每小题1分,共10小题,10分)11.下面程序段中带下划线的语句的执行次数的数量级是(log2n)。i=1; 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应用回溯与分支限界法解决实际问题时,在搜索过程中利用判定函数,也称为( .限界函数 )。20. 若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是( 4231 )。 三、应用题(每小题6分,共5小题,30分)21比较线性表和栈的基本操作的不同点。主要区别是对插入和删除操作的限制。 如线性表允许在表内任一位置进行插入和删除;而队列只允许在表尾一端进行插入,在表头一端进行删除;所以也称队列为受限的线性表。表头为队列头;表尾为队列尾。 插 入 删 除 线性表 Insert(L,i,x)Delete(L,i) (1in+1) (1in) 队列 Insert(L,n+1,x) Delete(L,1)22有一个二叉树按层次顺序存放在一维数组中,如下图所示:试求:(1)该树的后序遍历序列。 (2)画出该树的后序线索树。1 2 3 4 5 6 7 8 9 10 11 ACBED(1)后序遍历序列 C E D B A (2)后序线索树ABEDC23分析顺序查找算法的“监视哨”设置作用为了考虑查找不成功的情况,在每次进行关键字的比较前,首先要判断循环变量i是否数组越界,这对算法来说是必要的。如果每步省略数组下标是否越界的判断,则可以大大提高算法运行的效率。为此,可以利用预留的0号单元,作为所设的“监视哨”控制循环变量i的出界。 假设数据从后向前比较,监视哨设在数组低端 L.elem 0 = k 将算法中的判断语句 while (i next ) / 链表不空且 p = L-next; (1) while( knext; +k; / while if (p & (3)) / n!=0 时才需要修改指针 ha = L-next; / 以指针 ha 记a1结点的位置 (4)= p-next; / 将 b1 结点链接在头结点之后 p-next = NULL; / 设am的后继为空 q = L-next; / 令q 指向 b1结点 while (q-next) q = q-next; / 查找 bn 结点 q-next = ha; / (5) / if(p) / if(m) / exchange_L 答:(1)k = 1;(2)查找第am 个结点(3)p-next(4)L-next(5)将第 a1 结点链接到 bn 结点之后五、算法阅读题(本题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(ij) / 交换Ai 与Aj x=Ai; Ai+=Aj; Aj-=x; / if / while /Arrange(1)功能:(2)指针i和j的作用:六、算法设计题(本题10分)28设计算法purge_Sq实现删除顺序表SqList中重复元素,指出其算法的时间复杂度。void purge_Sq( SqList &L ) / 删除顺序表L中的重复元素 k = -1;/ k 指示新表的表尾 for (i=0; iL.length; +i) / 顺序考察表中每个元素 j=0; while(jk )/ k=-1 表明当前考察的是第一个元素 L.elem+k = L.elemi; / for L.length = k+1;/ 修改表长 / purge_Sq 此算法的时间复杂度为O (L.length2 )。七、算法设计题(本题10分)29设计算法从图的邻接表结构转换成邻接矩阵结构的算法。答:1. #include2. #include3. #include4. 5. inta100100;/邻接矩阵的载体6. 7. typedefstructArcNode8. intadjvex;9. structArcNode*nextarc;10. ArcNode;/表结点11. 12. typedefstructVNode13. chardata;14. ArcNode*firstarc;15. VNode,AdjList20;/头结点16. 17. typedefstruct18. AdjListvertices;19. intvexnum,arcnum;20. ALGraph;/邻接表21. 22. intLocateVex(ALGraphG,chare)23. 24. inti;25. 26. for(i=0;iG.vexnum;i+)27. 28. if(G.verticesi.data=e)29. returni;/找到后返回i30. 31. 32. return-1;33. 34. 35. voidCreatAdList(ALGraph&G)36. /根据输入的有向图G的顶点数及边数,建立图G的邻接表37. inti,j,k;38. charv1,v2;39. ArcNode*s,*p;40. 41. scanf(%d%d,&G.vexnum,&G.arcnum);42. getchar();43. for(i=0;iG.vexnum;i+)/初始化头结点44. 45. scanf(%c,&G.verticesi.data);46. getchar();47. G.verticesi.firstarc=NULL;48. 49. for(i=0;iG.vexnum;i+)/输出一遍这些头50. 51. printf(%c,G.verticesi.data);52. 53. printf(n);54. for(k=0;kadjvex=j;62. s-nextarc=NULL;63. p=G.verticesi.firstarc;64. if(!p)65. 66. G.verticesi.firstarc=s;67. 68. else69. 70. while(p-nextarc)71. p=p-nextarc;72. p-nextarc=s;73. 74. 75. /CreateAdiMatrix76. 77. voidtrans(ALGraphG)78. /转换函数79. inti,j;80. ArcNode*p;81. 82. for(i=0;i=G.vexnum;i+)/先初始化,全部赋值为083. for(j=0;j=G.vexnum;j+)84. 85. aij=0;86. 87. for(i=0;iadjvex=1;93. p=p-nextarc;94. 95. 96. 97. 98. voidOutput(ALGraph&G)99. 100. inti,j;101. 102. for(i=0;iG.vexnum;i+)103. 104. for(j=0;jG.vexnum;j+)105. 106. printf(%d,aij);107. 108. printf(n);109. 110. 111. 112. 113. intmain()114. 115. ALGraphG;116. 117. printf(有向图处理篇n);118. CreatAdList(G);119. trans(G);120. Output(G);121. 122. return0;123. 10课程名称: 数据结构II
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!