1、吉首大学试题库课程测试试题( 卷)-以下为教师填写-I、命题院(部): 数学与计算机科学学院 II、课程名称: 数据结构 III、测试学期:20 20 学年度第 学期IV、测试对象: 学院 专业 级 班V、问卷页数(A4): 页VI、答卷页数(A4): 页VII、考试方式: 闭卷 (开卷、闭卷或课程小论文,请填写清楚)VIII、问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格,学生将所有的答案做在答题纸上的规定位置,并写清楚大题、小题的题号)一、 单选题(每题 2 分,共 20 分)1. 以下数据结构中哪一个是线性结构?( )A. 有向图 B. 栈 C. 二叉树 D. B 树2.
2、 若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用( )存储方式最节省时间。A.单链表 B.双链表C.带头结点的双循环链表 D.单循环链表3. 以下哪一个不是队列的基本运算?( )A. 在队列第 i 个元素之后插入一个元素 B. 从队头删除一个元素C. 判断一个队列是否为空 D.读取队头元素的值4. 字符 A、B、C、D 依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( )个不同的字符串?A.15 B.14 C.16 D.215. 由权值分别为 4,7,6,2 的叶子生成一棵哈夫曼树,它的带权路径长度为( )。A 11 B.37 C. 19 D.
3、53以下 6-8 题基于下面的叙述:若某二叉树结点的中序遍历的序列为A、B、C、D、E、F、G,后序遍历的序列为 B、D、C、A、F、G、E。6. 则该二叉树结点的前序遍历的序列为( ).A. E、G、F、A、C、D、B B. E、A、G、C、F、B、DC. E、A、C、B、D、G、F D. E、G、A、C、D、F、B7. 该二叉树有( )个叶子。A3 B.2 C.5 D.48. 该二叉树的按层遍历的序列为( )AE、G、F、A、C、D、B B. E、A、C、B、D、G、FC. E、A、G、C、F、B、D D. E、G、A、C、D、F、B9. 下面的二叉树中,( )不是完全二叉树。10. 设有
4、关键码序列(q,g,m,z,a),下面哪一个序列是从上述序列出发建的小根堆的结果?( )A. a,g ,m,q, z B. a,g ,m,z,qC. g ,m,q,a,z D. g, m, a,q,z二、 填空题(每空 1 分,共 26 分)1. 数据结构是指数据及其相互之间的_。当结点之间存在 1 对N(1:N)的联系时,称这种结构为_。2. 一个广义表中的元素分为_元素和_元素两类。3. 对于一个长度为 n 的顺序存储的线性表,在表头插入元素的时间复杂度为_,在表尾插入元素的时间复杂度为_。4. 向一个由 HS 指向的链栈中插入一个结点时 p 时,需要执行的操作是_;删除一个结点时,需要执
5、行的操作是_(假设栈不空而且无需回收被删除结点) 。5. 栈又称为_表,队列又称为_表。6. 在稀疏矩阵所对应的三元组线性表中,每个三元组元素按_为主序、_为辅序的次序排列。7. 若一棵二叉树中只有叶子结点和左、右子树皆非空的结点,设叶结点的个数为 K,则左、右子树皆非空的结点个数是_。8. 以折半(或二分)查找方法从长度为 8 的有序表中查找一个元素时,平均查找长度为_。9. 表示图的三种常用的存储结构为_、_和_。10. 对于线性表(78,4,56,30,65)进行散列存储时,若选用 H(K)=K %5作为散列函数,则散列地址为 0 的元素有_个,散列地址为 4 的有_个。11. 在归并排
6、序中,进行每趟归并的时间复杂度为_,整个排序过程的时间复杂度为_,空间复杂度为_。12. 在 n 个带权叶子结点构造出的所有二叉树中,带权路径长度最小的二叉树称为_。WPL 称为_。13. 在索引表中,若一个索引项对应主表的一个记录,则此索引为_索引 ,若对应主表的若干条记录,则称此索引为_索引。三、 运算题(每题 6 分,共 24 分)1. 写出下列中缀表达式的后缀形式:(1) 3X/(Y-2H)+1(2) 2+X*(Y+3)2. 假定一棵二叉树广义表表示为 a(b(c),d(e,f),分别写出对它进行先序、中序、后序、按层遍历的结果。先序:中序:后序:按层: 3. 已知一个无向图的顶点集为
7、a, b, c, d, e ,其邻接矩阵如下所示010010(1) 画出该图的图形;(2)根据邻接矩阵从顶点 a 出发进行深度优先遍历和广度优先遍历,写出相应的遍历序列。4. 已知一个图的顶点集 V 和边集 E 分别为:V=0,1,2,3,4,5,6,7;E=(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(3,6)10, (4,6)4,(5,7)20;按照普里姆算法从顶点 0 出发得到最小生成树,试写出在最小生成树中依次得到的各条边。ab cde四、 阅读算法(每题 7 分,共 14 分)1. void AE(StackPush(S,3)
8、;Push(S,4);int x=Pop(S)+2*Pop(S);Push(S,x);int i,a5=2,5,8,22,15;for(i=0;idata;/查找成功return true;else if(itemdata)BST=BST-_;else BST=BST-_;/whilereturn _;/查找失败六、 编写算法(共 8 分)用递归的算法编写出对存入在 an+1数组中的 n 个有序元素进行二分(又称折半)查找(假定 a0单元不用)的程序。int halfsearch(SSTable *a, KeyType k,int low,int high)参考答案一、 单选题(每题 2 分,
9、共 20 分)1.B 2.C 3.A 4.B 5.B 6.C 7.A 8.C 9.C 10.B二、 填空题(每空 1 分,共 26 分)1. 联系 树(或树结构)2. 单 (子)表3. O(n) O(1)4. p-next=HS;HS=p HS=HS-next5. 先进后出 先进先出6. 行 列7. k-18. 2.6259. 邻接矩阵 邻接表 边集数组10. 2 111. O(n) O(nlog2n) O(n)12. 哈夫曼树 带权路径长度13. 稠密 稀疏 三、 运算题(每题 6 分,共 24 分)1. (1) 3 X * Y 2 H *- / 1 + (2) 2 X Y 3 + * +
10、2. 先序: a,b,c,d,e,f 中序: c,b,a,e,d,f 后序: c,b,e,f,d,a 按层: a,b,d,c,e,f 3. (1)该图的图形如图 9 示: (2)深度优先遍历序列为:abdce广度优先遍历序列为:abedc4. 普里姆:(0,3)2, (0,2)5, (0,1)8, (1,5)6, (3,6)10, (6,4)4, (5,7)20四、 阅读算法(每题 7 分,共 14 分)1. 15 22 8 5 2 102. 该函数的功能是:求: akmnmak nkn(,)(,),(,)101 当 时当 时当 时五、 算法填空(共 8 分,每一空 2 分)BST-data left right false六、 编写算法(8 分)递归算法 :int halfsearch(SSTable *a, KeyType k,int low,int high)图 9 if (lowhigh) return 0;else int mid=(low+high)/2if EQ(k,amid.key) return mid;else if LT(k,amid.key) return halfsearch(a,k,low,mid-1);else return halfsearch(a,k,mid+1,high);