ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:144.50KB ,
资源ID:3475890      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3475890.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构考试.题1.doc)为本站会员(小**)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

数据结构考试.题1.doc

1、#*要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。每张答题纸都要写上姓名和学号。一、单项选择题(每小题 1.5 分,共计 30 分)1. 数据结构是指 。A. 一种数据类型B. 数据的存储结构C. 一组性质相同的数据元素的集合D. 相互之间存在一种或多种特定关系的数据元素的集合2. 以下算法的时间复杂度为 。void fun(int n) int i=1;while (i1)个元素的线性表的运算只有 4 种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素的后面插入新元素,则最好使用以下哪种存储结构,并简要说明理由。(1)只有尾结点指针没有头结点指针的循

2、环单链表(2)只有尾结点指针没有头结点指针的非循环双链表(3)只有头结点指针没有尾结点指针的循环双链表(4)既有头结点指针也有尾结点指针的循环单链表2. 已知一棵度为 4 的树中,其度为 0、1、2、3 的结点数分别为 14、4、3、2,求该树的结点总数 n 和度为 4 的结点个数,并给出推导过程。3. 有人提出这样的一种从图 G 中顶点 u 开始构造最小生成树的方法:假设 G=(V,E)是一个具有 n 个顶点的带权连通无向图, T=(U,TE)是 G 的最小生成树,其中 U 是 T 的顶点集, TE 是 T 的边集,则由 G 构造从起始顶点 u 出发的最小生成树T 的步骤如下:(1)初始化

3、U=u。以 u 到其他顶点的所有边为候选边。(2)重复以下步骤 n-1 次,使得其他 n-1 个顶点被加入到 U 中。从 候 选 边 中 挑 选 权 值 最 小 的 边 加 入 到 TE, 设 该 边 在 V-U 中 的 顶 点 是 v, 将 v 加 入 U 中 。考查顶点 v,将 v 与 V-U 顶点集中的所有边作为新的候选边。若此方法求得的 T 是最小生成树,请予以证明。若不能求得最小边,请举出反例。4. 有一棵二叉排序树按先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20)。回答以下问题:(1)画出该二叉排序树。(2)给出该二叉排序树的中序遍历序列。(3)求在等概

4、率下的查找成功和不成功情况下的平均查找长度。#*三、算法设计题(每小题 10 分,共计 30 分)1. 设 A 和 B 是两个结点个数分别为 m 和 n 的单链表(带头结点) ,其中元素递增有序。设计一个尽可能高效的算法求 A 和 B 的交集,要求不破坏 A、B 的结点,将交集存放在单链表 C 中。给出你所设计的算法的时间复杂度和空间复杂度。2. 假设二叉树 b 采用二叉链存储结构,设计一个算法 void findparent(BTNode *b,ElemType x,BTNode * /专业、班号或姓名float score; /分数struct node *child; /指向最左边的孩子

5、结点struct node *brother; /指向下一个兄弟结点 TNode;完成以下算法:(1)设计一个算法求所有的学生人数。(2)求指定某班的平均分。 name:计 算 机 专 业 score:0 name:计 科 1 score:0 name:王 华 score:86 name:李 明score:79 name:张 兵score:79 name:计 科 n score:0 name:陈 强 score:85 name:许 源score:92 name:张 山score:69 图 1 一棵学生成绩树#*“数据结构”考试试题(A)参考答案要求:所有的题目的解答均写在答题纸上,需写清楚题目

6、的序号。每张答题纸都要写上姓名和学号。一、单项选择题(每小题 1.5 分,共计 30 分)1. D 2. A 3. A 4. A 5. C6. B 7. D 8. B 9. A 10. C11. C 12. A 13. A 14. D 15. D16. C 17. D 18. A 19. A 20. C二、问答题(共 4 小题,每小题 10 分,共计 40 分)1. 答:本题答案为(3) ,因为实现上述 4 种运算的时间复杂度均为 O(1)。【评分说明】选择结果占 4 分,理由占 6 分。若结果错误,但对各操作时间复杂度作了分析,可给 25 分。2. 答:结点总数 n=n0+n1+n2+n3+

7、n4,即 n=23+n4,又有:度之和=n-1=0n0+1n1+2n2+3n3+4n4,即 n=17+4n4,综合两式得:n 4=2,n=25。所以,该树的结点总数为 25,度为4 的结点个数为 2。【评分说明】结果为 4 分,过程占 6 分。3. 答:此方法不能求得最小生成树。例如,对于如图 5.1(a )所示的带权连通无向图,按照上述方法从顶点 0 开始求得的结果为 5.1(b)所示的树,显然它不是最小生成树,正确的最小生成树如图 5.1(c)所示。在有些情况下,上述方法无法求得结果,例如对于如图 5.1(d)所示的带权连通无向图,从顶点 0 出发,找到顶点 1(边(0,1) ) ,从顶点

8、 1 出发,找到顶点 3(边(1,3) ) ,再从顶点 3 出发,找到顶点 0(边(3,0) ) ,这样构成回路,就不能求得最小生成树了。 0 1 1 3 2 2 3 4 5 0 1 1 3 2 2 4 3 5 ( a) ( d) 0 1 1 3 2 3 5 ( b) 0 1 1 3 2 3 ( c) 4 图 1 求最小生成树的反例#*说明:只需给出一种情况即可。【评分说明】回答不能求得最小生成树得 5 分,反例为 5 分。若指出可求得最小生成树,根据证明过程给 12 分。4. 答:(1)先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20),中序序列是一个有序序列,所以

9、为:(2,5,6,8,10,12,15,16,18,20),由先序序列和中序序列可以构造出对应的二叉树,如图 2 所示。(2)中序遍历序列为:2,5,6,8,10,12,15,16,18,20。(3)ASL 成功 =(11+22+43+34)/10=29/10。ASL 不成功 =(53+64/11=39/11。12 5 2 8 6 10 16 15 18 20 图 2【评分说明】 (1)小题占 6 分, (2) (3)小题各占 2 分。三、算法设计题(每小题 10 分,共计 30 分)1. 设 A 和 B 是两个结点个数分别为 m 和 n 的单链表(带头结点) ,其中元素递增有序。设计一个尽可

10、能高效的算法求 A 和 B 的交集,要求不破坏 A、B 的结点,将交集存放在单链表 C 中。给出你所设计的算法的时间复杂度和空间复杂度。解:算法如下:void insertion(LinkList *A,LinkList *B,LinkList *C=(LinkList *)malloc(sizeof(LinkList);t=C;while (p!=NULL s-data=p-data;t-next=s;t=s;p=p-next;q=q-next;else if (p-datadata)p=p-next;#*elseq=q-next;t-next=NULL;算法的时间复杂度为 O(m+n),空

11、间复杂度为 O(MIN(m,n)。【评分说明】算法为 8 分,算法的时间复杂度和空间复杂度各占 1 分。2. 假设二叉树 b 采用二叉链存储结构,设计一个算法 void findparent(BTNode *b,ElemType x,BTNode *else if (b-lchild!=NULL else if (b-rchild!=NULL else findparent(b-lchild,x,p);if (p=NULL)findparent(b-rchild,x,p);else p=NULL;【评分说明】本题有多种解法,相应给分。3. 假设一个连通图采用邻接表 G 存储结构表示。设计一个算

12、法,求起点 u 到终点 v的经过顶点 k 的所有路径。解:算法如下:int visitedMAXV=0; /全局变量void PathAll(ALGraph *G,int u,int v,int k,int path,int d)/d 是到当前为止已走过的路径长度,调用时初值为-1 int m,i;ArcNode *p;visitedu=1;d+; /路径长度增 1pathd=u; /将当前顶点添加到路径中if (u=v for (i=0;iadjlistu.firstarc; /p 指向顶点 u 的第一条弧的弧头节点while (p!=NULL) m=p-adjvex; /m 为 u 的邻接

13、点if (visitedm=0) /若该顶点未标记访问,则递归访问之PathAll(G,m,v,l,path,d);p=p-nextarc; /找 u 的下一个邻接点visitedu=0; /恢复环境:使该顶点可重新使用int In(int path,int d,int k) /判断顶点 k 是否包含在路径中 int i;for (i=0;ichild=NULL) return 1;return count(b-child)+count(b-brother);说明:本题可以从链表的角度求解。(2)算法如下:int Average(TNode *b,char class,float float sum=0;TNode *p=b-child; /p 指向班号结点while (p!=NULL if (p=NULL) return 0; /没找到该班号,返回 0p=p-child; /p 指向该班的第一个学生while (p!=NULL)n+; /累计人数sum+=p-score; /累计分数p=p-brother;avg=sum/n; /求平均分return 1;【评分说明】两小题各占 5 分。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。