数据结构试卷(10)

上传人:游客 文档编号:122231158 上传时间:2020-03-03 格式:DOC 页数:18 大小:158KB
返回 下载 相关 举报
数据结构试卷(10)_第1页
第1页 / 共18页
数据结构试卷(10)_第2页
第2页 / 共18页
数据结构试卷(10)_第3页
第3页 / 共18页
数据结构试卷(10)_第4页
第4页 / 共18页
数据结构试卷(10)_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数据结构试卷(10)》由会员分享,可在线阅读,更多相关《数据结构试卷(10)(18页珍藏版)》请在金锄头文库上搜索。

1、-数据结构试卷(十)一、选择题(24分)1下列程序段的时间复杂度为( )。i=0,s=0; while (snext=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,则通过栈的作用后可以得到的输出序列为( )。(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个存储单元中

2、,每个数组元素占1个字节的存储空间,则A54地址与A00的地址之差为( )。(A) 10(B) 19(C) 28(D) 556设一棵m叉树中有N1个度数为1的结点,N2个度数为2的结点,Nm个度数为m的结点,则该树中共有( )个叶子结点。(A) (B) (C) (D) 7. 二叉排序树中左子树上所有结点的值均( )根结点的值。(A) (C) =(D) !=8. 设一组权值集合W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )。(A) 129(B) 219(C) 189(D) 2299. 设有n个关键字具有相同的Hash函数

3、值,则用线性探测法把这n个关键字映射到HASH表中需要做( )次线性探测。(A) n2 (B) n(n+1)(C) n(n+1)/2(D) n(n-1)/210.设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉中共有( )个结点。(A) 2n(B) n+l(C) 2n-1(D) 2n+l 11.设一组初始记录关键字的长度为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

4、,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. 设需要对5个不同的记录关键字进行排序,则至少需要比较_次,至多需要比较_次。2. 快速排序算法的平均时间复杂度为_,直接插入排序算法的平均时间复杂度为_。3. 设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_次。4. 设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_个,比较两次查找成功有结点数有_个。5. 设一棵m叉树脂的结

5、点数为n,用多重链表表示其存储结构,则该树中有_个空指针域。6. 设指针变量p指向单链表中结点A,则删除结点A的语句序列为:q=p-next;p-data=q-data;p-next=_;feee(q);7. 数据结构从逻辑上划分为三种基本类型:_、_和_。8. 设无向图G中有n个顶点e条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时的时间复杂度为_;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_。9. 设散列表的长度为8,散列函数H(k)=k % 7,用线性探测法解决冲突,则根据一组初始关键字序列(8,15,16,22,30,32)构造出的散列表的平均查找长

6、度是_。10. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟冒泡排序结束后的结果为_。11. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟简单选择排序后的结果为_。12. 设有向图G中的有向边的集合E=,则该图的一个拓扑序列为_。13. 下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。typedef struct nodeint data;struct node *lchild;_;bitree;void createbitree(bitree *&bt)scanf(“%c”,&ch);if(ch=#) _;els

7、e bt=(bitree*)malloc(sizeof(bitree); bt-data=ch; _;createbitree(bt-rchild);14. 下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内容。typedef struct node int data; struct node *next; lklist; void lklistcreate(_ *&head ) for (i=1;idata);p-next=0;if(i=1)head=q=p;else q-next=p;_; 三、算法设计题(22分)1 设计在链式存储结构上合并排序的算法。2 设

8、计在二叉排序树上查找结点X的算法。3 设关键字序列(k1,k2,kn-1)是堆,设计算法将关键字序列(k1,k2,kn-1,x)调整为堆。数据结构试卷(一)参考答案一、 选择题(每题2分,共20分)1.A 2.D 3.D 4.C 5.C 6.D 7.D 8.C 9.D 10.A二、填空题(每空1分,共26分)1. 正确性 易读性 强壮性 高效率2. O(n)3. 9 3 34. -1 3 4 X * + 2 Y * 3 / -5. 2n n-1 n+16. e 2e7. 有向无回路8. n(n-1)/2 n(n-1)9. (12,40) ( ) (74) (23,55,63)10. 增加111

9、. O(log2n) O(nlog2n)12. 归并三、计算题(每题6分,共24分)1. 线性表为:(78,50,40,60,34,90)2. 邻接矩阵: 邻接表如图11所示:图113. 用克鲁斯卡尔算法得到的最小生成树为: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204. 见图124444422255285283452843图12四、 读算法(每题7分,共14分)1. (1)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a2,a3,an,a1) 2. 递归地后序遍历链式存储的二叉树。五、 法填空(

10、每空2分,共8 分)true BST-left BST-right 六、 编写算法(8分)int CountX(LNode* HL,ElemType x) int i=0; LNode* p=HL;/i为计数器 while(p!=NULL) if (P-data=x) i+; p=p-next; /while, 出循环时i中的值即为x结点个数 return i; /CountX数据结构试卷(二)参考答案一、选择题1.D2.B3.C4.A5.A6.C7.B8.C二、填空题1. 构造一个好的HASH函数,确定解决冲突的方法2. stack.top+,stack.sstack.top=x3. 有序4

11、. O(n2),O(nlog2n)5. N0-1,2N0+N16. d/27. (31,38,54,56,75,80,55,63)8. (1,3,4,5,2),(1,3,2,4,5)三、应用题1. (22,40,45,48,80,78),(40,45,48,80,22,78)2. q-llink=p; q-rlink=p-rlink; p-rlink-llink=q; p-rlink=q;3. 2,ASL=91*1+2*2+3*4+4*2)=25/94. 树的链式存储结构略,二叉树略5. E=(1,3),(1,2),(3,5),(5,6),(6,4)6. 略四、算法设计题1. 设有一组初始记录关键字序列(K1,K2,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。void quickpass(int r, int s, int t) int i=s, j=t, x=rs; while(ij)while (ix) j=j-1; if (ij) ri=rj;i=i+1; while (ij & rix) i=i+1; if (ij) rj=ri;j=j-1; ri=x;2. 设有两个集合A和集合B,要求设计生成集合C=AB的算法,其中集合A、B和C用链式存储结构表示

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号