收藏 分销(赏)

全国2011年1月高等教育自学考试数据结构试题及答案.doc

上传人:丰**** 文档编号:9801695 上传时间:2025-04-08 格式:DOC 页数:11 大小:106.54KB 下载积分:8 金币
下载 相关 举报
全国2011年1月高等教育自学考试数据结构试题及答案.doc_第1页
第1页 / 共11页
全国2011年1月高等教育自学考试数据结构试题及答案.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
全国2021年1月高等教育自学考试 数据构造试题 〔课程代码:02331〕 一、单项选择题〔本大题共15小题,每题2分,共30分〕 在每题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多项选择或未选均无分。 1.以下选项中与数据存储构造无关的术语是〔 〕 2.将两个各有n个元素的有序表归并成一个有序表,最少的比拟次数是〔 〕 3.循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,那么向队列中插入新元素时,修改指针的操作是〔 〕 A.rear=(rear-1)%m; B.front=(front+1)%m; C.front=(front-1)%m; D.rear=(rear+1)%m; 4.递归实现或函数调用时,处理参数及返回地址,应采用的数据构造是〔 〕 5.设有两个串p与q,其中q是p的子串,那么求q在p中首次出现位置的算法称为〔 〕 6.对于广义表A,假设head(A)等于tail(A),那么表A为〔 〕 A.( ) B.(( )) C.(( ),( )) D.(( ),( ),( )) 7.假设一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,那么该二叉树一定是 8.假设一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,那么该二叉树叶子结点的个数是〔 〕 9.以下表达中错误的选项是〔 〕 10.有向图G=(V,E),其中V={V1,V2,V3,V4},E={<V1,V2>,<V1,V3>,<V2,V3>,<V2,V4>,<V3,V4>},图G的拓扑序列是〔 〕 A.V1,V2,V3,V4 B.V1,V3,V2,V4 C.V1,V3,V4,V2 D.V1,V2,V4,V3 O(n log n)的稳定排序算法是〔 〕 12.关键字序列为(51,22,83,46,75,18,68,30),对其进展快速排序,第一趟划分完成后的关键字序列是〔 〕 A.(18,22,30,46,51,68,75,83) B.(30,18,22,46,51,75,83,68) C.(46,30,22,18,51,75,68,83) D.(30,22,18,46,51,75,68,83) 13.某索引顺序表共有元素395个,平均分成5块。假设先对索引表采用顺序查找,再对块中元素进展顺序查找,那么在等概率情况下,分块查找成功的平均查找长度是〔 〕 14.在含有10个关键字的3阶B-树中进展查找,至多访问的结点个数为〔 〕 15.ISAM文件系统中采用多级索引的目的是〔 〕 二、填空题〔本大题共10小题,每题2分,共20分〕 请在每题的空格中填上正确答案。错填、不填均无分。 16.数据构造由数据的逻辑构造、存储构造与数据的____________三局部组成。 17.在单链表中某结点后插入一个新结点,需要修改_______________个结点指针域的值。 18.设栈S的初始状态为空,假设元素a、b、c、d、e、f依次进栈,得到的出栈序列是b、d、c、f、e、a,那么栈S的容量至少是________________。 19.长度为零的串称为________________。 20.广义表G=(a,b,(c,d,(e,f)),G)的长度为________________。 21.一棵树T采用孩子兄弟链表存储,如果树T中某个结点为叶子结点,那么该结点在二叉链表中所对应的结点一定是________________。 22.一个有n个顶点的无向连通图,最少有________________条边。 23.当待排关键字序列根本有序时,快速排序、简单项选择择排序与直接插入排序三种排序方法中,运行效率最高的是________________。 24.在一棵深度为h的具有n个结点的二叉排序树中,查找任一结点的最多比拟次数是______________。 25.不定长文件指的是文件的____________大小不固定。 三、解答题〔本大题共4小题,每题5分,共20分〕 26.一棵二叉排序树〔结点值大小按字母顺序〕的前序遍历序列为EBACDFHG, 请答复以下问题: (1)画出此二叉排序树; (2)假设将此二叉排序树看作森林的二叉链表存储,请画出对应的森林。 27.有向图的邻接表如下图,请答复下面问题: (1)给出该图的邻接矩阵; (2)从结点A出发,写出该图的深度优先遍历序列。 28.待排记录的关键字序列为{25,96,11,63,57,78,44},请答复以下问题: (1)画出堆排序的初始堆〔大根堆〕; (2)画出第二次重建堆之后的堆。 29.关键字序列为(56,23,41,79,38,62,18),用散列函数H(key)=key%11将其散列到散列表HT[0..10]中,采用线性探测法处理冲突。请答复以下问题: (1)画出散列存储后的散列表: (2)求在等概率情况下查找成功的平均查找长度。 四、算法阅读题〔本大题共4小题,每题5分,共20分〕 30.阅读以下程序。 void f30(int A[], int n) int i,j,m; for (i=1;i<n;i++) for (j=0;j<i;j++) m=A[i*n+j]; A[i*n+j]=A[j*n+i]; A[j*n+i]=m; 答复以下问题: (1)矩阵B=,将其按行优先存于一维数组A中,给出执行函数调 用f30(A,3)后矩阵B的值; (2)简述函数f30的功能。 31.假设以二叉链表表示二叉树,其类型定义如下: typedef struct node { char data; struct node*Ichild, *rchild; ∥左右孩子指针 } *BinTree; 阅读以下程序。 void f31(BinTree T) InitStack(S); ∥ 初始化一个堆栈S while (T || !StackEmpty(S) while (T) Push(S,T); T=T->lchild; if (!StackEmpty(S)) T=Pop(S); printf(“%c〞,T->data); T=T->rchild; 答复以下问题: (1)以T为根指针的二叉树如下图,请写出执行f31(T)的输出结果:(2)简述算法f31的功能。 32.阅读以下程序。 void f32(int A[],int n) int i,j,m=l,t; for (i=0; i<n-l&&m; i++) for (j=0; j<n; j++) printf(“%d 〞,A[j]); printf(“\n〞); m=0: for (j=1; j<n-i; j++) if (A[j-1]>A[j]) t=A[j-l]; A[j-1]=A[j]; A[j]=t; m=1; 答复以下问题: 整型数组A[ ]={34,26,15,89,42},写出执行函数调用f32(A,5)后的输出结果。 33.顺序表的表构造定义如下: #define MAXLEN 100 typedef int KeyType; typedef struct { KeyType key; InfoType otherinfo; } NodeType; typedef NodeType SqList[MAXLEN]; 阅读以下程序。 Int f33(SqList R,NodeType X, int p, int q) { int m; if (p>q) return -1; m=(p+q)/2; if (R[m].key==X.key) return m; if (R[m].key>X.key) return f33(R,X,p,m-l); else return f33(R,X,m+l,q); 请答复以下问题: (1)假设有序的顺序表R的关键字序列为(2,5,13,26,55,80,105),分别写出X.key=18与X.key=26时,执行函数调用f33(R,X,0,6)的函数返回值。 (2)简述算法f33的功能。 五、算法设计题〔此题10分〕 34.假设用带头结点的单循环链表表示线性表,单链表的类型定义如下: typedef struct node { int data; struct node*next; }LinkNode,*LinkList; 编写程序,求头指针为head的单循环链表中data域值为正整数的结点个数占结点总数的比例,假设为空表输出0,并给出所写算法的时间复杂度。函数原型为: float f34(LinkList head): 全国2021年1月高等教育自学考试 数据构造试题答案 〔课程代码:02331〕 一、单项选择题〔本大题共15小题,每题2分,共30分〕 1. D 2. B 3. D 4. A 5. C 6. B 7. C 8. B 9. C 10. A 11. C 12. D 13. A 14. B 15. A 二、填空题〔本大题共10小题,每题2分,共20分〕 16.运算〔或操作〕 17. 2 18. 3 19.空串 20. 4 21.左子树为空 22.n-l 23.直接插入排序 24.h 25.记录 三、解答题〔本大题共4小题,每题5分,共20分〕 26.(1) 【评分参考】错1个结点扣1分,扣完3分为止。 (2) 〔2分〕 【评分参考】错1棵树扣1分,扣完2分为止。 27.(1) 〔3分〕 【评分参考】错1个数字扣1分,扣完3分为止。 (2) ABCED 〔2分〕 【评分参考】错1个字符扣1分,扣完2分为止。 28.(1)f96,63,78,25,57,11,4}〔亦可画出对应的堆形式。〕 〔3分〕 【评分参考】错1个关键字位置扣1分,扣完3分为止。 (2)f63,57,44,25,1l,78,96)〔亦可画出对应的堆形式。〕 〔2分〕 【评分参考】错1个关键字位置扣1分,扣完2分为止。 29.(1) 【评分参考】错1个关键字位置扣1分,扣完4分为止。 (2) ASL=11/7 〔1分〕 四、算法阅读题〔本大题共4小题,每题5分,共20分〕 30.(1)〔3分〕 【评分参考】错1个数字扣1分,扣完3分为止。 (2)算法功能是求矩阵的转置 〔2分〕 31.(1) CBEDFAGH 〔4分〕 【评分参考】错1个结点位置扣1分,扣完4分为止。 (2)中序遍历二叉树 〔1分〕 32.输出结果: 34 26 15 89 42 〔1分〕 26 15 34 42 89 〔2分〕 15 26 34 42 89 〔2分〕 33.(1)-1 〔2分〕 3 〔2分〕 (2)算法功能是二分查找给定的关键字,假设存在那么返回关键字在表中的位置〔或下标〕,否那么返回-1。 〔1分〕 五、算法设计题〔此题10分〕 34.参考答案: float f34 (LinkList head) LinkNode *p=head->next; int m=0,n=0; 〔赋初值2分〕 while( p!=head) 〔循环条件1分〕 m++; if (p->data>0) n++’ 〔结点计数2分〕 pp->next; 〔修改指针1分〕 if(m)retum (float)n/m; else retum O; 〔计算返回值2分〕 时间复杂度为O(n)。 〔2分〕 说明:假设用其他方法实现该功能,清参照此评分标准给分。 第 11 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 自考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服