自考数据结构历年试题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一部分选择题(30分)一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。7.若目标串的长度为n,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况下的时间复杂度是()A.O(n3)B.O(n)C.O(n2)D.O(n3)9.假设以带行表的三元组表表示稀疏矩阵,则和下列行表02335对应的稀疏矩阵是()A.08067000000050400000B.08067000504000000300C.08060000020050400000D.0806000070005040030012.假设一个有n个顶点和e条弧的有向图用邻接表表示,则删除与某个顶点vi相关的所有弧的时间复杂度是()A.O(n)B.O(e)C.O(n+e)D.O(n*e)13.用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则所采用的排序方法是()A.选择排序B.希尔排序C.归并排序D.快速排序第二部分非选择题(共70分)二、填空题(本大题共10小题,每小题2分,若有两个空格,每个空格1分,共20分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。20.假设一个9阶的上三角矩阵A按列优先顺序压缩存储在一维数组B中,其中B[0]存储矩阵中第1个元素a1,1,则B[31]中存放的元素是。21.已知一棵完全二叉树中共有768结点,则该树中共有个叶子结点。23.在单链表上难以实现的排序方法有和。25.多重表文件和倒排文件都归属于多关键字文件。三、解答题(本大题共4小题,每小题5分,共20分)26.画出下列广义表的共享结构图形表示P=(((z),(x,y)),((x,y),x),(z))27.请画出与下列二叉树对应的森林。28.已知一个无向图的顶点集为{a,b,c,d,e},其邻接矩阵如下所示0100110010000110110110110(1)画出该图的图形;(2)根据邻接矩阵从顶点a出发进行深度优先遍历和广度优先遍历,写出相应的遍历序列。29.已知一个散列表如下图所示:35203348590123456789101112其散列函数为h(key)=key%13,处理冲突的方法为双重散列法,探查序列为:hi=(h(key)+i*h1(key))%mi=0,1,…,m-1其中h1(key)=key%11+1回答下列问题:(1)对表中关键字35,20,33和48进行查找时,所需进行的比较次数各为多少?(2)该散列表在等概率查找时查找成功的平均查找长度为多少?四、算法阅读题(本大题共4小题,每小题5分,共20分)30.下列算法的功能是比较两个链串的大小,其返回值为:comstr(s1,s2)=101121212当当当ssssss请在空白处填入适当的内容。intcomstr(LinkStrings1,LinkStrings2){//s1和s2为两个链串的头指针while(s1&&s2){if(s1-dates2-date)return-1;if(s1-dates2-date)return1;①;abcde②;}if(③)return-1;if(④)return1;⑤;}①②③④⑤31.阅读下面的算法LinkListmynote(LinkListL){//L是不带头结点的单链表的头指针if(L&&L-next){q=L;L=L-next;p=L;S1:while(p-next)p=p-next;S2:p-next=q;q-next=NULL;}returnL;}请回答下列问题:(1)说明语句S1的功能;(2)说明语句组S2的功能;(3)设链表表示的线性表为(a1,a2,…,an),写出算法执行后的返回值所表示的线性表。32.假设两个队列共享一个循环向量空间(参见右下图),其类型Queue2定义如下:typedefstruct{DateTypedata[MaxSize];intfront[2],rear[2];}Queue2;对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。请对以下算法填空,实现第i个队列的入队操作。intEnQueue(Queue2*Q,inti,DateTypex){//若第i个队列不满,则元素x入队列,并返回1;否则返回0if(i0||i1)return0;if(Q-rear[i]==Q-front[①]return0;Q-data[②]=x;Q-rear[i]=[③];return1;}①②③33.已知二叉树的存储结构为二叉链表,阅读下面算法。typedefstructnode{DateTypedata;Structnode*next;}ListNode;typedefListNode*LinkList;LinkListLeafhead=NULL;VoidInorder(BinTreeT){LinkLists;If(T){Inorder(T-lchild);If((!T-lchild)&&(!T-rchild)){s=(ListNode*)malloc(sizeof(ListNode));s-data=T-data;s-next=Leafhead;Leafhead=s;}Inorder(T-rchild);}}对于如下所示的二叉树(1)画出执行上述算法后所建立的结构;(2)说明该算法的功能。五、算法设计题(本题共10分)34.阅读下列函数arrange()intarrange(inta[],int1,inth,intx){//1和h分别为数据区的下界和上界inti,j,t;i=1;j=h;while(ij){while(ij&&a[j]=x)j--;while(ij&&a[j]=x)i++;if(ij){t=a[j];a[j]=a[i];a[i]=t;}}if(a[i]x)returni;elsereturni-1;}(1)写出该函数的功能;(2)写一个调用上述函数实现下列功能的算法:对一整型数组b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个数。一、单项选择题(本大题共15小题,每小题2分,共30分)1.D2.B3.C4.B5.D6.A7.C8,D9,A10.C11.D12.C13.D14.C15.B二、填空题(本大题共10小题,每小题2分,共20分)16.存储(或存储结构)17.p->next->next18.进栈和退栈19.1220.a4,821.38422.abefcdg23.快速排序、堆排序、希尔排序24.225.多关键字三、解答题(本大题共4小题,每小题5分,共20分)26.图1图227.28.该图的图形为:深度优先遍历序列为:abdce广度优先遍历序列为:abedc29.(1)对关键字35、20、33和48进行查找的比较次数为3、2、1、1;(2)平均查找长度ASL32112595四、算法阅读题(本大题共4小题,每小题5分,共20分)30.①S1=S1-next②s2=s2-next③s2(或s2!=NULL或s2&&!s1)④s1(或s1!=NULL或s1&&!s2)⑤return031.(1)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点(3)返回的线性表为(a2,a3,…,an,a1)32.①(i+1)%2(或1-i)②Q-rear[i]③(Q-rear[i]+)%Maxsize33.(1)LeafheadFHGD∧(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。五、算法设计题(本题共10分)34.(1)该函数的功能是:调整整数数组a[]中的元素并返回分界值i,使所有<x的元素均落在a[1..i]上,使所有≥x的元素均落在a[i+1..h]上。(2)intf(intb[],intn)或intf(intb[],intn){{intp,q;intp,q;p=arrange(b,0,n-1,0);p=arrange(b,0,n-1,1);q=arrange(b,p+1,n-1,1);q=arrange(b,0,p,0);returnq-p;returnp-q;}}2003.1数据结构试题一、单项选择题(本大题共15小题,每小题2分,共30分。在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内)1.下面程序段的时间复杂度是(D)for(i=0;i<n;i++)for(j=1;j<m;j++)A[i][j]=0;A.O(n)B.O(m+n+1)C.O(m+n)D.O(m*n)2.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是(B)A.p=p->next;B.p->next=p->next->next;C.p->next=p;D.p=p->next->next;3.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next=head,则(D)A.p指向头结点B.p指向尾结点C.*p的直接后继是头结点D.*P的直接后继是尾结点4.判定“带头结点的链队列为空”的条件是(C)A.Q.front==NULLB.Q.rear==NULLC.Q.front==Q.rearD.Q.front!=Q.rear5.设有两个串T和P,求P在T中首次出现的位置的串运算称作(D)A.联接B.求子串C.字符定位D.子串定位6.广义表A=(a,(b),(),(c,d,e))的长度为(A)A.4B.5C.6D.77.一棵含18个结点的二叉树的高度至少为(C)A.3B.4C.5D.68.已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为(D)A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA9.无向图中一个顶点的度是指图中(B)A.通过该顶点的简单路径数B.与该顶点相邻接的顶点数C.通过该顶点的回路数D.与该顶点连通的顶点数10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为(C)A.acefbdB.acbdfeC.acbdefD.acdbfe11.在下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是(B)A.快速排序B.堆排序C.归并排序D.基数排序12.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。对这些子序列进行一趟两两归并的结果是(A)A.{25,36,48,72,23,40,79,82,16,35}B.{25,36,48,72,16,23,40,79,82,35}C.{25,36,48,72,16,23,35,40,79,82}D.{16,23,25,35,36,40,48,72,79,82}13.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。若对索引表采用顺序查找来确定块,并在确定的块中进行顺序查找,则在查找概率相等的情况下,分块查找成功时的平均查找长度为(B)A.21B.23C.41D.6214.索引非顺序文件的特点是(A)A.主文件无序,索引表有序B.主文件有序,索引表无序C.主文件有序,索引表有

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功