《2018计算机考研:计算机数据结构测试题(一)》由会员分享,可在线阅读,更多相关《2018计算机考研:计算机数据结构测试题(一)(8页珍藏版)》请在金锄头文库上搜索。
1、 http:/ 2018 计算机考研:计算机数据结构测试题(一)2018 考研,计算机专业课考试科目为:计算机组成原理、数据结构、操作系统以及计算机网络等,需要大家记忆的知识点有很多,但是不能死机硬背,还是要理解为主的,融会贯通才能把题做好,拿到高分,小编就为大家分享计算机数据结构测试题及参考答案,希望计算机考研的考生在复习之余能够认真做题,巩固知识。计算机数据结构测试题(一)一、选择题(24 分)1.下列程序段的时间复杂度为( )。i=0,s=0; while (s(A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2)2.设某链表中最常用的操作是在链表的尾部插入
2、或删除元素,则选用下列( )存储方式最节省运算时间。(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表3.设指针 q 指向单链表中结点 A,指针 p 指向单链表中结点 A 的后继结点 B,指针 s 指向被插入的结点 X,则在结点 A 和结点 B 插入结点 X 的操作序列为( )。(A) s-next=p-next;p-next=-s; (B) q-next=s; s-next=p;(C) p-next=s-next;s-next=p; (D) p-next=s;s-next=q;4.设输入序列为 1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。ht
3、tp:/ (A) 5,3,4,6,1,2 (B) 3,2,5,6,4,1(C) 3,1,2,5,4,6 (D) 1,5,4,6,2,35.设有一个 10 阶的下三角矩阵 A(包括对角线),按照从上到下、从左到右的顺序存储到连续的 55 个存储单元中,每个数组元素占 1 个字节的存储空间,则 A54地址与 A00的地址之差为( )。(A) 10 (B) 19 (C) 28 (D) 556.设一棵 m 叉树中有 N1 个度数为 1 的结点,N2 个度数为 2 的结点,Nm个度数为 m 的结点,则该树中共有( )个叶子结点。(A) (B) (C) (D)7. 二叉排序树中左子树上所有结点的值均( )
4、根结点的值。(A) (C) = (D) !=8. 设一组权值集合 W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )。(A) 129 (B) 219 (C) 189 (D) 2299. 设有 n 个关键字具有相同的 Hash 函数值,则用线性探测法把这 n 个关键字映射到 HASH 表中需要做( )次线性探测。(A) n2 (B) n(n+1) (C) n(n+1)/2 (D) n(n-1)/210.设某棵二叉树中只有度数为 0 和度数为 2 的结点且度数为 0 的结点数为 n,则这棵二叉中共有( )个结点。http:/
5、(A) 2n (B) n+l (C) 2n-1 (D) 2n+l11.设一组初始记录关键字的长度为 8,则最多经过( )趟插入排序可以得到有序序列。(A) 6 (B) 7 (C) 8 (D) 912.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是( )。(A) F,H,C,D,P,A,M,Q,R,S,Y,X(B) P,A,C,S,Q,D,F,X,R,H,M,Y(C) A,D,C,R,F,Q,M,S,Y,P,H,X(D) H,C,Q,P,A,M,S,R,D,F,X,Y二、填空题(48 分,其中最后两小题各 6 分)1. 1
6、. 设需要对 5 个不同的记录关键字进行排序,则至少需要比较_次,至多需要比较_次。2. 2. 快速排序算法的平均时间复杂度为_,直接插入排序算法的平均时间复杂度为_。3. 3. 设二叉排序树的高度为 h,则在该树中查找关键字 key 最多需要比较_次。4. 4. 设在长度为 20 的有序表中进行二分查找,则比较一次查找成功的结点数有_个,比较两次查找成功有结点数有_个。http:/ 5. 5. 设一棵 m 叉树脂的结点数为 n,用多重链表表示其存储结构,则该树中有_个空指针域。6. 6. 设指针变量 p 指向单链表中结点 A,则删除结点 A 的语句序列为:q=p-next;p-data=q-
7、data;p-next=_;feee(q);7. 7. 数据结构从逻辑上划分为三种基本类型:_、_和_。8. 8. 设无向图 G 中有 n 个顶点 e 条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时的时间复杂度为_;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_。9. 9. 设散列表的长度为 8,散列函数 H(k)=k % 7,用线性探测法解决冲突,则根据一组初始关键字序列(8,15,16,22,30,32)构造出的散列表的平均查找长度是_。10. 10. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第 3 趟冒泡排序结束后的结果为
8、_。11. 11. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第 3 趟简单选择排序后的结果为_。12. 12. 设有向图 G 中的有向边的集合E=,则该图的一个拓扑序列为_。13. 13. 下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。http:/ typedef struct nodeint data;struct node *lchild;_;bitree;void createbitree(bitree *if(ch=#) _;else bt=(bitree*)malloc(sizeof(bitree); bt-data=ch; _;cre
9、atebitree(bt-rchild);14. 14. 下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内容。typedef struct node int data; struct node *next; lklist;void lklistcreate(_ *ip=(lklist *)malloc(sizeof(lklist);scanf(“%d”,p-next=0;if(i=1)head=q=p;else q-next=p;_;三、算法设计题(22 分)1. 1. 设计在链式存储结构上合并排序的算法。2. 2. 设计在二叉排序树上查找结点 X 的算法。3.
10、 3. 设关键字序列(k1,k2,kn-1)是堆,设计算法将关键字序列(k1,k2,kn-1,x)调整为堆。计算机数据结构测试题(一)答案http:/ 一、选择题1.A 2.D 3.B 4.B 5.B 6.D7.A 8.D 9.D 10.C 11.B 12.D二、填空题1. 1. 4,102. 2. O(nlog2n),O(n2)3. 3. n4. 4. 1,25. 5. n(m-1)+16. 6. q-next7. 7. 线性结构,树型结构,图型结构8. 8. O(n2), O(n+e)9. 9. 8/310. 10. (38,13,27,10,65,76,97)11. 11. (10,13
11、,27,76,65,97,38)12. 12. 12465313. 13. struct node *rchild,bt=0,createbitree(bt-lchild)14. 14. lklist,q=phttp:/ 三、算法设计题1. 1. 设计在链式存储结构上合并排序的算法。void mergelklist(lklist *ha,lklist *hb,lklist *while(ha!=0 else s-next=ha; s=ha;ha=ha-next;else if(s=0) hc=s=hb; else s-next=hb; s=hb;hb=hb-next;if(ha=0) s-ne
12、xt=hb; else s-next=ha;2. 2. 设计在二叉排序树上查找结点 X 的算法。bitree *bstsearch1(bitree *t, int key)bitree *p=t;while(p!=0) if (p-key=key) return(p);else if (p-keykey)p=p-lchild; else p=p-rchild;return(0);http:/ 3. 3. 设关键字序列(k1,k2,kn-1)是堆,设计算法将关键字序列(k1,k2,kn-1,x)调整为堆。void adjustheap(int r ,int n)int j=n,i=j/2,temp=rj-1;while (i=1) if (temp=ri-1)break; elserj-1=ri-1; j=i; i=i/2;rj-1=temp;以上就是为大家整理的计算机数据结构测试题及参考答案,希望能够帮助大家更好的备考,祝大家能够取得好成绩!