数据结构考试题3_第1页
数据结构考试题3_第2页
数据结构考试题3_第3页
数据结构考试题3_第4页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。每张答题纸都要写学号。上姓名和一、单项选择题( 每小题2 分,共计40 分)1. 数据结构是指 _ 。A. 一种数据类型B. 数据的存储结构C. 一组性质相同的数据元素的集合D. 相互之间存在一种或多种特定关系的数据元素的集合2. 以下算法的时间复杂度为 _ 。void fun(int n) int i=1;while (i<=n)i+ ;A. 0( n)B.0(-n )C. O(nlog2n)D. O(log2n)3.现要设计一个高效的算法,在一个长度为n 的有序顺序表中删除所有元素值为x 的元素 ( 假设这样的元素是不唯一的)

2、 ,这样的算法时间复杂度为_。A. 0( n)B. 0( nl og2 n)C. O(n2)D. O( 、一n )4. 在一个带头结点的循环双链表 L 中,要删除 p 所指结点,算法的时间复杂度为 _ 。A. O(n)B. O( 、, n)C. O(1)D. O(n 2)5.若一个栈采用数组s0.n-1存放其元素,初始时栈顶指针top 为 n,则以下元素 x进栈的正确操作是 _ 。A.top+;stop=x;B.stop=x;top+;C.top- ;stop=x;D.stop=x;top -;6.中缀表达式“ 2*(3+4)-1 ”的后缀表达式是,其中 #表示一个数值的结束。A. 2#3#4

3、#1#*+ -B.2#3#4#+*1# -C. 2#3#4#*+1# -D. - +*2#3#4#1#7.设循环队列中数组的下标为0? N-1 ,其队头、队尾指针分别为front 和 rear ( front指向队列中队头元素的前一个位置,rear 指向队尾元素的位置 ) ,则其元素个数为 _A. rear- frontB. rear-fro nt-1C. (rear- fro nt) % N+1D. (rear - fro nt+N)% N8.若用一个大小为6 的数组来实现循环队列,队头指针front 指向队列中队头元素的前一个位置,队尾指针rear指向队尾元素的位置。若当前rear和fro

4、nt的值分别为0 和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为_。A.1和 5B.2和4C.4和2D.5和19. 一棵高度为 h ( h>1) 的完全二叉树至少有_ 个结点。A. 2 h-1B. 2 hC. 2 h+1D. 2 h-1 + 110. 一棵含有 n 个结点的线索二叉树中,其线索个数为_A. 2nB. n-1C. n+1D. n11. 设一棵哈夫曼树中有1999 个结点,该哈夫曼树用于对个字符进行编A.999B. 998码。C. 1000D. 100112. 一个含有 n 个顶点的无向连通图采用邻接矩阵存储,则该矩阵一定疋A.对称矩阵B.非对

5、称矩阵C.稀疏矩阵D.稠密矩阵13. 设无向连通图有 n 个顶点 e 条边,若满足 _ ,则图中一定有回路。A. e > nB. e<nC. e=n-1D. 2e > nA._ 是正确的。14. 对于 AOE 网的关键路径,以下叙述B.完成整个工程的最短时任何一个关键活动提前完成,则整个工程一定会提前完成C. 间是从源点到汇点的最短路径长度一个 AOE 网的关键路径一定是唯一的任何一D.个活动持续时间的改变可能会影响关键路径的改变15. 设有 100 个元素的有序表,用折半查找时,不成功时最大的比较次数是A. 25B.50C. 10D.7个关键16.在一棵 m 阶 B- 树中

6、删除一个关键字会引起合并,则该结点原有字。A. 1B.m/2C. m/2 -1D.m/2 +1A.哈希查找方法一般适用于_ 情况下的查找。查找表为链表查找表为有序17.B.表 关键字集合比地址集合大得多关键字集合与地址集合之间存在着某种对应关C.系。D.对含有个元素的顺序表采用直接插入排序方法进行排序,在最好情况下算法的18.n时间复杂度为A. 0( n)B. 0( nl og 2 n)C. O(n 2)D. O( n )19. 用某种排序方法对数据序列24,88,21,48,15,27,69,35,20进行递增排序,元素序列欢迎下载3的变化情况如下:(1) 24,88,21,48,15,27

7、,69,35,20(2) 20,15,21,24,48,27,69,35,88(3) 15,20,21,24,35,27,48,69,88(4) 15,20,21,24,27,35,48,69,88则所采用的排序方法是_ 。A.快速排序B.简单选择排序C.直接插入排序D.二路归并排序20. 以下排序方法中, _ 不需要进行关键字的比较。A.快速排序B.归并排序C.基数排序D.堆排序二、问答题 ( 共 4 小题,每小题 10 分,共计 40 分)1. 如果一个含有 n ( n>1 ) 个元素的线性表的运算只有4 种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元

8、素的后面插入新元素,则最好使用以下哪种存储结构 ( 所有链表均带有头结点 ),并简要说明理由。(1)只有尾结点指针没有头结点指针的循环单链表(2)只有尾结点指针没有头结点指针的非循环双链表(3)只有头结点指针没有尾结点指针的循环双链表(4)既有头结点指针也有尾结点指针的循环单链表2. 对于图 1 所示的带权有向图,采用Dijkstra 算法求从顶点0 到其他顶点的最短路径,要求给出求解过程,包括每一步的S 集合、 dist 和 path 数组元素。图 1 一个有向图3. 有一棵二叉排序树按先序遍历得到的序列为:( 12,5,2,8,6,10,16,15,18,20)。回答以下问题:(1) 画出

9、该二叉排序树。( 2 ) 给出该二叉排序树的中序遍历序列。( 3) 求在等概率下的查找成功和不成功情况下的平均查找长度。4. 一个含有 n 个互不相同的整数的数组R1.n ,其中所有元素是递减有序的,将其看成是一棵完全二叉树,该树构成一个大根堆吗?若不是,请给一个反例,若是,请说明理由。欢迎下载4三、算法设计题(每小题10 分,共计 20 分)1. 设 A 和 B 是两个结点个数分别为m 和 n 的单链表(带头结点),其中元素递增有序。设计一个尽可能高效的算法求 A 和 B 的交集,要求不破坏 A、B 的结点,将交集存放在单 链表 C 中。给出你所设计的算法的时间复杂度和空间复杂度。2.假设二

10、叉树b 采用二叉链存储结构,设计一个算法void findparent (BTNode*b,ElemType x,BTNode *&p)求指定值为x 的结点(假设这样的结点是唯一的)的双亲结点地址p,提示,根结点的双亲为NULL ,若在 b 中未找到值为x 的结点, p 亦为 NULL 。欢迎下载5“数据结构”考试试题(A )参考答案要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。每张答题纸都要写上姓名和学号。、单项选择题(每小题2 分,共计 40 分)1. D2. A3. A4. C5. C6. B7. D8. B9. A10. C11. C12. A13. A14. D1

11、5. D16. C17. D18. A19. A20. C问答题 (共 4 小题, 每小题10 分,共计 40 分)1.答:本题答案为( 3),因为实现上述4 种运算的时间复杂度均为0(1)。【评分说明】选择结果占4 分,理由占 6分。若结果错误,但对各操作时间复杂度作了分析,可给 2? 5分。2.答:该图对应的邻接矩阵如下 :0 6920 1 20 20370在求最短路径时,S (存放顶点集), dist (存放最短路径长度)和path (存放最短路径)的变化如下 :Sdistpath012340123400692000-100, 405992040400, 1,4 0,1, 乙 40567

12、2041100,1,2,340567204110最后得到的结果如下 :0567204110顶点 0到顶点1 的最短距离为5,最短路径为:0、 4、1顶点 0到顶点2 的最短距离为6,最短路径为:0、 4、 1、2顶点 0到顶点3 的最短距离为乙 最短路径为:0、 4、 1、3顶点 0到顶点4 的最短距离为2,最短路径为:0、 4。3. 答: (1)先序遍历得到的序列为: (12,5,2,8,6,10,16,15,18,20 ),中序序列是一个有序 序列,所以为:( 2,5,6,8,10,12,15,16,18,20 ),由先序序列和中序序列可以构造出对应的二叉树,如图 2 所示。(2) 中序遍

13、历序列为: 2,5,6,8,10,12,15,16,18,20 。(3) ASL 成功 =(1 X1+2X2+4 X 3+3 X 4)/10=29/10 。欢迎下载6ASL 不成功 =(5 乌 +6 >4/11=39/11 。图 2【评分说明】 (1) 小题占 6 分, ( 2) (3) 小题各占 2 分。4?该数组一定构成一个大根堆。当 R 是递减时,其数组元素为心、 ?、?、 kn, 从中看出下标越大的元素值越小,对于任一元素 ki,有 ki >k2i ,ki>k2i+1 ( i <n/2 ), 这正好满足大根堆的特性,所以构成一个大根堆。【评分说明】回答是给5 分

14、,说明理由给5 分。三、算法设计题 ( 每小题 10 分,共计 20 分)1.设 A 和 B 是两个结点个数分别为 m 和 n 的单链表 ( 带头结点 ) ,其中元素递增有序。 设计一个尽可能高效的算法求 A 和 B 的交集,要求不破坏 A 、B 的结点,将交集存放在单 链表 C中。给出你所设计的算法的时间复杂度和空间复杂度。解:算法如下:void insertion(LinkList *A, LinkList *B,LinkList *&C) LinkList *p=A->next,*q=B->next,*s,*t;C=(LinkList *)malloc(sizeof(

15、LinkList);t=C;while (p!=NULL && q!=NULL) if (p_>data=q_>data) s=(LinkList *)malloc(sizeof(LinkList); s->data=p->data;t->next=s; t=s; p=p->next;q=q->next;else if (p->data<q->data)p=p->next;elseq=q->next;欢迎下载7t->next=NULL;算法的时间复杂度为 0(m+ n) ,空间复杂度为 O(MIN( m,n) 。【评分说明】算法为 8 分,算法的时间复杂度和空间复杂度各占2?假设二叉树b 采用二叉链存储结构,设计一个算法*b,ElemType x,BTNode *&p)求指定值为x 的结点的双亲结点NULL ,若未找到这样的结点,p 亦为 NULL 。解:算法如下:void findparent(BTNode *b,ElemType x,BTNode *&p) if (b!=NULL) if (b->data=x) p=NULL;else if (b->lchild!=NULL &&

温馨提示

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

评论

0/150

提交评论