(完整word版)2011《数据结构》期末试卷_A卷(答案)_第1页
(完整word版)2011《数据结构》期末试卷_A卷(答案)_第2页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、1厦门大学数据结构课程期末试卷信息科学与技术学院计算机科学系 20092009 年级_专业主考教师:陈怡疆 庄朝晖 试卷类型:(A A 卷)一、(本题 10 分)(1) 线性表和广义表的主要区别是什么?(2) 已知广义表:C=(a,(b, (a,b), (a,b), (a,b),则 tail(head(tail(C) = ?答案:(1)线性表和广义表都是元素 a1,a2,an 组成的序列,其主要区别点在于:在线性表中, ai是单个元素(原子);在广义表中,ai 可以是单个元素(原子),也可以是广义表。(7 分)(2)tail(head(tail(C) = (a,b) (3 分) 二、(本题 1

2、0 分)简述二叉树的两种存储结构(顺序存储和链式存储)的数据结构及主要优 缺点。在哈夫曼树中,使用哪种存储结构,并说明理由。答案:顺序存储结构:typedef SqBiTreeMax_Tree_Size;特点:使用数组存储二叉树上的结点元素,按照对应的完全二叉树的编号来存储二叉树。优点是适用于完全二叉树,访问方便。缺点是对于一般二叉树,较大地浪费了空间。(4 分)链式存储结构:typedef strut BiTNode TElemType data; struct BiTNode *lchild, *rchild;BiTNode, *BiTree; 特点:使用结构体来表示结点元素,使用指针来指

3、向结点的左右孩子。优点是插入与删除方 便,节省空间,缺点是不能快速地随机访问结点元素。(4 分)在哈夫曼树中,使用静态三叉链表,这样可以方便地从根走到叶子,也可以从叶子走到根, 而且可以随机访问和节省空间。(2 分)三、(本题 10 分)一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来, 试求出空格处的内容,并画出该二叉树。先序序列:_B_F_ICEH_G;中序序列:D_KFIA_EJC_ ;后序序列:_K_FBHJ_G_A。答案:先序序列:A B DF K I C E H J G中序序列:D B K F I A H E J C G后序序列:D K I F B H J E G

4、C A (11 分)画出树得 4 分。2FKH四、(本题 10 分) 分别使用普里姆算法和克鲁斯卡尔算法求出图G1 的最小生成树,仅需画出最小生成树的成长过程即可。图 G1答案:(1)普里姆算法求最小生成树的过程如下:0125 分3五、(本题 10 分)有向图 G2 如上所示,(1)请写出图 G2 所有可能的拓扑序列:(2)请写出以顶点 B 为起始点的深度优先遍历序列和广度优先遍历序列,并画出对应的生成树。遍历过程中当有多种选择时,编号小的结点优先。答案:(1)BACDE、BACED、BCADE、BCAED ( 5 分,少一个扣一分)(2)深度优先遍历序列: BADEC ( 3 分)(2)克鲁

5、斯卡尔算法如下:5 分02广度优先遍历序列:BACDE ( 3 分)4六、(本题 15 分)已知键值序列为 45,56,83,31,72,35,14,47,89,19,要求给出:(1) 按键值排列次序构造一棵二叉排序树。(2) 在等概率的情况下,求出该二叉排序树查找成功的平均查找长度。(3) 针对上述 10 个键值,在不同的排列次序下所构造出的不同形态的二叉排序树中,在最 坏和最好情况下,二叉排序树的高度各是多少?答案:(1)(2) 在等概率情况下,该二叉排序树的平均检索长度是:ASL=(1+2*2+3*4+4*3)/10=29/10=2.9(3) 对于上述 10 个键值,在最坏情况下,每个结

6、点(除了叶子结点)只有右孩子(或者只 有左孩子),高度为 10。在最好情况下,高度为Llog210J+1=4。七、(本题 15 分)设关键字序列为:49,38,66,80,70,15,22 欲对该序列进行从小到大排序。(1)用直接插入排序法进行排序,写出每趟的结果。(2)采用待排序列的第一个关键字作为枢轴,写出快速排序法的一趟和二趟排序之后的状态。(3)画出待排序列的初始化堆。答案:直接插入排序法原始关键字序列为:(49)38668070 1522(3849)6680701522(384966:)80701522(38496680;)701522(3849667080:)1522(384966

7、7080:)1522(1538 49667080:)22(1522 3849667080)4531561435471972837289广度优先遍历序列:BACDE ( 3 分)5快速排序法原始关键字序列为:49, 38, 66, 80,70, 15,22第一趟排序后223815(49)7080 666该堆是最大堆,具体如下:八、(本题 10 分)假设一棵树的存储结构采用双亲表示法,双亲数组为int parentMaxSize,其中 MaxSize 为最大结点个数。树中各结点按先根遍历的次序存放,根结点存于parent0。试编写一个函数,计算下标 p 所指结点和下标 q 所指结点的最近公共祖先结点。参考答案:int CommonAn cestry(i nt pare nt, int MaxSize, int p, int q)int i,j;for (i=p; i!=-1;i=pare nti)for (j=q; j!=-1; j=pare ntj)if (i=j) return I;九、(本题 10 分)1, 2, ,n 这 n 个数,无序地保存在数组 c1.n中。请编写一个时间复 杂度为 0(n)的排序算法,将数组 c1.n按小到大排序

温馨提示

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

评论

0/150

提交评论