《数据结构与算法》试卷与答案1_第1页
《数据结构与算法》试卷与答案1_第2页
《数据结构与算法》试卷与答案1_第3页
《数据结构与算法》试卷与答案1_第4页
《数据结构与算法》试卷与答案1_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

广州大学学年第学期考试卷课程数据结构与算法考试形式(闭卷,考试)信息学院系专业级班学号:姓名:题次一二三四五六总分评卷人分数201010302010100评分一、填空题:(每格2分,共20分)对于一个以顺序实现的循环队列Q[0..m-1],队头、队尾指针分别是f,r,其判空的条件是,判满的条件是。前序序列和中序序列相同的二叉树为。.设根结点处在第一层,那么具有n个结点的完全二叉树,其高度为。快速排序方法的最坏时间复杂度为;平均时间复杂度为。给定表(55,63,44,38,75,80,31,56),用筛选法建立初始堆,则初始堆表为。已知二叉树中叶子数为50,仅有一个孩子的结点数为30,则总结点数为已知8个数据元素由(35,75,40,15,20,55,95,65)按照依次插入结点的方法生成一棵二叉排序树后,最后两层上的结点总数为假设有n个关键字,它们具有相同的Hash函数值,用线性探测方法解决冲突,把这n个关键字散列到大小为n的地址空间中,共计需要做次插入和探测操作。设图G有n个顶点e条边,采用邻接表存储,则拓扑排序算法的时间复杂度为 。

10.已知有序表为(12,18,24,35,47,50,62,83,90,115,134),当用二分法查找100时,需进行次查找时才能确定不成功。。二、单项选择题(每题1分,共10分)1.( )组成数据的基本单位是A.数据项B.数据类型C.数据元素D.数据变量2.( )串的逻辑结构与()的逻辑结构不同A.线性表B.栈C.队列D.树3.( )设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为A.3,2,5,6,4,1B.1,5,4,6,2,3C.2,4,3,5,1,6D.4,5,3,6,2,14.( )设有一个10阶的对称矩阵A,米用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每元素占一个存储空间,则a85的地址为13TOC\o"1-5"\h\z331840( )二叉树在线索化后,仍不能有效求解的问题是前(先)序线索二叉树中求前(先)序后继;中序线索二叉树中求中序后继;中序线索二叉树中求中序前趋;后序线索二叉树中求后序后继。( )如果结点A有3个兄弟,而且B为A的双亲,则B的度为TOC\o"1-5"\h\z3451( )设有100个元素,用二分法查找时,最大比较次数是TOC\o"1-5"\h\z257101( )快速排序在( )情况下最不利于发挥其长处被排序的数据量太大被排序的数据中含有多个相同的关键字被排序的数据完全无序被排序的数据已基本有序( )判定一个有向图是否存在回路,除了可以利用拓扑排序外,还可以利用求关键路径的方法求最短路径的Dijkstra方法深度优先遍历算法宽度优先遍历算法( )对于含有个n顶点e条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为( ),利用Kruskal时间复杂度为( )O(log2n)O(n2)O(ne)o(elog2e)三、判断题(在括号内填上""”或“X”,每题1分,共10分,做错不倒扣)()具有线性序关系的集合中,若a,b是集合中的任意两个原子,则必定有a<b的关系。()对任意一个图,从它的某个顶点出发进行一次深度优先或广度优先搜索遍历可访问到该图的每个顶点。()一个满二叉树同时又是一棵平衡树。()任一AOE网中至少有一条关键路径,且是从源点到汇点的路径中最长的一条。()快速排序是排序算法中最快的一种。()删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。()对一个堆按层次遍历,不一定能得到一个有序序列。()在索引顺序表查找方法中,对索引顺序表可以使用顺序表查找方法,也可以使用二分查找方法。()双循环链表中,任一结点的前驱指针均为不空。()哈希表的查找效率主要取决于哈希建表时所选取的哈希函数和处理冲突的方法。

四、 (1) (6分)给出如图所示的无向图G的邻接矩阵和邻接表两种存储结构.33(2)解答下面的问题(6分)((2)解答下面的问题(6分)(1) 求网的最小生成树有哪些算法?各适用何种情况?为什么?(2) 由以下的网络邻接矩阵,画出一棵最小生成树17202217812118111920191534221215111920191534221215348(3)已知一棵非空二叉树,其按中根和后根遍历的结果分别为:中根:CGBAHEDJFI后根:GBCHEJIFDA试将这样的二叉树构造出来。若已知先根和后根的遍历结果,能否构造出这棵二叉树,为什么?5分(4)一项工程由P1、P2、.......P6六项子工程组成,这些工程之间有下列关系:P1<P2,P3<P6,P4<P3,P2<P6,P4<P5,P1<P3,P5<P6,符号“<”表示“先于”关系,例如P2<P6表示P2完成后P6才能开始。请给出工程P的三种可能的施工顺序。(6分)(5)假定用于通信的电文由8个字母A,B,C,D,E,F,G,H组成,各字母在电文中出现的概率为5%,25%,4%,7%,9%,12%,30%,8%,试为这8个字母设计哈夫曼编码。(7分)五、 (1)读程序,分析其时间复杂度:4分m=91;n=100;while(n>0)if(m>0){m=m-10;n=n-1;}elsem=m+1;此程序的时间复杂度是。(2)以下程序为求二叉树深度的递归算法,请填空完善之 6分typedefstructnode{chardata;structnodelchild,rchild;}*bitree;intdepth(bitreebt)/*bt为根结点的指针*/{inthl,hr;if(br==NULL)return();hl=depth(bt->lchild);hr=depth(bt->rchild);if() return(hr+1);已知N元整型数组a存放N个学生的成绩,已按由大到小排序,以下算法是用折半查找方法统计成绩大于或等于x分的学生人数,请填空完善之。6分#defineN /*学生人数*/intuprx(inta[N],intx) /*函数返回大于或等于x分的学生人数*/{inthead,mid,rear;do{mid=(head+rear)/2;if(x<=a[mid])else;}while();if(a[head]<x)returnhead-1;returnhead;}简述以下算法的功能:4分voidBB(LNode*s,LNode*q){P=s;while(p->next!=q)p=p->next;p->next=s;}voidAA(LNode*pa,LNode*pb){ //pa和pb分别指向单循环链表中的两个结点BB(pa,pb);BB(pb,pa);}六、给定有m个整数的递增有序数组a[1..m]和有n个整数的递减有序数组b[1..n]。试写出算法:将数组a和b归并为递增有序数组c[1..m+n]。(要求:算法的时间复杂度为O(m+n)。)(10分)试卷答案一、 填空题:(每格2分,共20分)r=f,(r+1)%m=f。单右枝二叉树或孤立结点。卜0&2。」+1。O(n2); O(nlog2n)。(31,38,44,56,75,80,55,63)或(80,75,55,56,63,44,31,38)。129。2 n(n+1)/2 O(n+e)。10*.已知有序表为(12,18,24,35,47,50,62,83,90,115,134),当用二分法查找100时,需进行3 次查找时才能确定不成功。。二、单项选择题(每题1分,共10分)TOC\o"1-5"\h\z( C )(D)( B )( B )( D )( D )( B )( D )( C )*10.(BD)对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为( ),利用Kruskal时间复杂度为( )O(log2n)\o"CurrentDocument"O(n2)O(ne)

H.O(elog2e)二 、判断题11(F)12(F)13(F)14(T)15(F)16(F)17(T)18(T)19(T)20(T)四、(1)(6分)解:邻接矩阵为

(2)解答下面的问题(6分)解(1):求网的最小生成树时可使用Prim算法,此算法适用于边较多的稠密图;也可使用Kruskual算法,此算法适用于边较少的稀疏图。(2):一棵最小生成树如图所示:(3)解:由中根和后根所确定的二叉树如图所示前根序列和后根序列不能唯一确定一棵二叉树。因为根据中根序列,结合前根或后根序列可以把二叉树区分出左右子树来。而前根序列和后根序列访问左右子树是顺序连在一起的,故无法区分出左右子树来,那么也就无法确定一棵二叉树了。(4)解:可给出有向图表示各子工程间的关系如下图:找出3个可能的施工顺序如下:P1,P2,P3,P4,P5,P6P1,P4,P2,P3,P5,P6P4,P5,P1,P2,P3,P6(5)解:A:1001 B:11C:1000 D:0000E:101 F:001G:01 H:0001五、(1)O(n)(2)typedefstructnode{chardata;structnodelchild,rchild;}*bitree;intdepth(bitreebt) /*bt为根结点的指针*/{inthl,hr;if(br==NULL)return(0);hl=depth(bt->lchild);hr=depth(bt->rchild);if(hl>hr)return(hl+1)return(hr+1);}(3)#defineN /*学生人数*/intuprx(inta[N],intx) /*函数返回大于或等于x分的学生人数*/{inthead,mid,rear;do{mid=(head+rear)/2;if(x<=a[mid])head=mid+1elserear=mid-1;}while(head>rear);if(a[head]<x)re

温馨提示

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

评论

0/150

提交评论