《2022年全国年月自考数据结构试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年全国年月自考数据结构试题及答案 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国 2012 年 10 月高等教育自学考试数据结构试题课程代码:02331 请考生按规定用笔将所有试题的答案涂、写在答题纸上。选择题部分注意事项:1.答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。2.每小题选出答案后,用2B 铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。一、单项选择题(本大题共l5 小题,每小题2 分,共 30 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。1一个算法的时间耗费的数量级称为该
2、算法的A效率B难度C可实现性D时间复杂度2顺序表便于A插入结点B删除结点C按值查找结点D按序号查找结点3设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是Ap-next-next=head Bp-next=head Cp-next-next=NULL Dp-next=NULL 4设以数组A0.m-1 存放循环队列,front 指向队头元素,rear 指向队尾元素的下一个位置,则当前队列中的元素个数为A(rear-front+m)m Brear-front+1 C(front-rear+m)m D(rear-front)m 5下列关于顺序栈的叙述中,正确的是A入栈操作需要判断
3、栈满,出栈操作需要判断栈空B入栈操作不需要判断栈满,出栈操作需要判断栈空C入栈操作需要判断栈满,出栈操作不需要判断栈空名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -D入栈操作不需要判断栈满,出栈操作不需要判断栈空6A 是一个 10 10 的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a0,0的存储地址为1,每个元素占一个存储单元,则a7,5的地址为A25 B26 C33 D34 7树的后序遍历等价于该树对应二叉树的A层次遍历B前序遍历C中序遍历D后序遍历8使用二叉线索树的目的是便于A二叉树中结点的插入与删除B在二叉树中查找双亲C确定二叉树的高度D查找一个结点的前
4、趋和后继9设无向图的顶点个数为n,则该图边的数目最多为An-l Bn(n-1)2 Cn(n+1)2 Dn210可进行拓扑排序的图只能是A有向图B无向图C有向无环图D无向连通图11下列排序方法中稳定的是A直接插入排序B直接选择排序C堆排序D快速排序12下列序列不为堆的是A75,45,65,30,15,25 B75,65,45,30,25,15 C75,65,30,l5,25,45 D75,45,65,25,30,15 13对线性表进行二分查找时,要求线性表必须是A顺序存储B链式存储C顺序存储且按关键字有序D链式存储且按关键字有序14分别用以下序列生成二叉排序树,其中三个序列生成的二叉排序树是相同
5、的,不同的序列是A(4,1,2,3,5)B(4,2,3,l,5)C(4,5,2,1,3)D(4,2,1,5,3)15下列关于m 阶 B 树的叙述中,错误的是A每个结点至多有m 个关键字B每个结点至多有m 棵子树C插入关键字时,通过结点分裂使树高增加名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -D删除关键字时通过结点合并使树高降低非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。二、填空题(本大题共10 小题,每小题2 分,共 20 分)16数据元素之间的逻辑关系称为数据的_结构。17在线性表中,表的长度定义为_。18用 S表示入栈操作
6、,X 表示出栈操作,若元素入栈的顺序为1、2、3、4,为了得到1、3、4、2 的出栈顺序,相应的S 和 X 的操作序列为 _。19在二叉树中,带权路径长度最短的树称为_。20已知广义表G,head(G)与 tail(G)的深度分别为4 和 6,则 G 的深度是 _。21一组字符(a,b,c,d)在文中出现的次数分别为(7,6,3,5),字符 d的哈夫曼编码的长度为_。22在一个具有n 个顶点的无向图中,要连通全部顶点至少需要_条边。23直接选择排序算法的时间复杂度是_。24对于长度为81 的表,若采用分块查找,每块的最佳长度为_。25用二叉链表保存有n 个结点的二叉树,则结点中有_个空指针域。
7、三、解答题(本大题共4 小题,每小题5 分,共 20 分)26假设 Q 是一个具有11 个元素存储空间的循环队列(队尾指针指向队尾元素的下一个位置,队头指针指向队头元素),初始状态Q.front=Q.rear=0;写出依次执行下列操作后头、尾指针的当前值。a,b,c,d,e,f 入队,a,b,c,d出队;(1)Q.front=_;Q.rear=_。g,h,i,j,k,l 入队,e,f,g,h 出队;(2)Q.front=_;Q.rear=_。M,n,o,P 入队,i,j,k,l,m 出队;(3)Q.front=_;Q.rear=_。27已知一个无向图如题27 图所示,以为起点,用普里姆(Pri
8、m)算法求其最小生成树,画出最小生成树的构造过程。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -28用归并排序法对序列(98,36,-9,0,47,23,1,8)进行排序,问:(1)一共需要几趟归并可完成排序。(2)写出第一趟归并后数据的排列次序。29一组记录关键字(55,76,44,32,64,82,20,16,43),用散列函数H(key)=key 11 将记录散列到散列表HT0.12 中去,用线性探测法解决冲突。(1)画出存入所有记录后的散列表。(2)求在等概率情况下,查找成功的平均查找长度。四、算法阅读题(本大题共4小题,每小题5 分,共 20 分)30顺序表
9、类型定义如下:#define ListSize 100 typedef struct int dataListSize;int length;SeqList;阅读下列算法,并回答问题:void f30(SeqList*L)int i,j;i=0;while(ilength)if(L-datai 2!=0)for(j=i+1;jlength;j+L-dataj-1=L-dataj;L-length-;else i+(1)若 L-data 中的数据为(22,4,63,0,15,29,34,42,3),则执行上述算法后L-data 中的数据以及L-length 的值各是什么?(2)该算法的功能是什么
10、?31.有向图的邻接矩阵类型定义如下:#define MVN 100 最大顶点数typedef int EType;边上权值类型typedef struct EType edgesMVNMVN;邻接矩阵,即边表名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -int n;图的顶点数MGraph;图类型例如,一个有向图的邻接矩阵如下所示:0 1 0 0 01 0 0 0 10 1 0 1 01 0 0 0 00 0 0 1 1A阅读下列算法,并回答问题:Void f31(MGraph G)Int i,j,k=0;Step1:for(i=0;iG.n;i+)for(j=0;j
11、G.n;j+)if(G.edgesij=1)k+;printf(“%d n”,k);step2:for(j=0;jG.n;j+)k=0;for(i=0;iG.n;j+)if(G.edgesij=1)k+;printf(“%d n”,k);(1)stepl 到 step2之间的二重循环语句的功能是什么?(2)step2 之后的二重循环语句的功能是什么?32阅读下列算法,并回答问题:void f32(int r,int n)Int i,j;for(i=2;in;i+)r0=ri;j=i-l;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -while(r0rj)rj+l=rj
12、;j=j-1;rj+l=r0;(1)这是哪一种插入排序算法?该算法是否稳定?(2)设置 r0 的作用是什么?33顺序表类型定义如下:typedef int SeqList100;阅读下列算法,并回答问题:void f33(SeqList r,int n)int a,b,i;if(r0 else a=r1;b=r0;for(i=2;in;i+)if(rib)b=ri;printf(a=d,b=d。n,a,b);(1)给出该算法的功能;(2)给出该算法的时间复杂度。五、算法设计题(本题 10 分)34二叉树的存储结构类型定义如下typedef struct node int data;struct node*lchild,*rchild;BinNode;typedef BinNode*BinTree;编写递归算法,求只有一个孩子结点的结点总数,并计算这些结点的数据值的和。函数的原型为:void f34(BinTree T,int*count,int*sum)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -*count 和*sum 的初值为0。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -