您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 全国2010年10月自学考试数据结构试题
页中国自考人()——700门自考课程永久免费、完整在线学习快快加入我们吧!全国2010年10月自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.数据的四种存储结构是()A.顺序存储结构、链接存储结构、索引存储结构和散列存储结构B.线性存储结构、非线性存储结构、树型存储结构和图型存储结构C.集合存储结构、一对一存储结构、一对多存储结构和多对多存储结构D.顺序存储结构、树型存储结构、图型存储结构和散列存储结构2.若对某线性表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,要使操作时间最少,下列选项中,应选择的存储结构是()A.无头结点的单向链表B.带头结点的单向链表C.带头结点的双循环链表D.带头结点的单循环链表3.若带头结点的单链表的头指针为head,则判断链表是否为空的条件是()A.head=NULLB.head-next=NULLC.head!=NULLD.head-next!=head4.若元素的入栈顺序为1,2,3....,n,如果第2个出栈的元素是n,则输出的第i(1=i=n)个元素是()A.n-iB.n-i+lC.n-i+2D.无法确定5.串匹配算法的本质是()A.串复制B.串比较C.子串定位D.子串链接6.设有一个10阶的对称矩阵A,采用行优先压缩存储方式,a11为第一个元素,其存储地址为1,每个元素占一个字节空间,则a85的地址为()A.13B.18C.33D.407.若一棵二叉树的前序遍历序列与后序遍历序列相同,则该二叉树可能的形状是()A.树中没有度为2的结点B.树中只有一个根结点,则具有n个结点的二叉树的最大高度是()A.nB.C.+1D.n/29.在图G中求两个结点之间的最短路径可以采用的算法是()A.迪杰斯特拉(Dijkstra)算法B.克鲁斯卡尔(Kruskal)算法C.普里姆(Prim)算法D.广度优先遍历(BFS)算法10.下图G=(V,E)是一个带权连通图,G的最小生成树的权为()A.15B.16C.17D.1811.在下图中,从顶点1出发进行深度优先遍历可得到的序列是()A.1234567B.1426375C.1425367D.124653712.如果在排序过程中不改变关键字相同元素的相对位置,则认为该排序方法是()A.不稳定的B.稳定的C.基于交换的D.基于选择的13.设有一组关键字(19,14,23,1,6,20,4,27,5,11,10,9),用散列函数H(key)=key%13构造散列表,用拉链法解决冲突,散列地址为1的链中记录个数为()A.1B.2C.3D.414.已知二叉树结点关键字类型为字符,下列二叉树中符合二叉排序树性质的是()若需高效地查询多关键字文件,可以采用的文件组织方式为()A.顺序文件B.索引文件C.散列文件D.倒排文件二、填空题(本大题共10小题,每小题2分,共20分)请每小题的空格中填上正确答案。错填、不填均无分。16.下面程序段的时间复杂度为___________。sum=1;for(i=0;sumn;i++)sum+=1;17.已知链表结点定义如下:typedefstructnode{chardata[16];structnode*next;}LinkStrNode;如果每个字符占1个字节,指针占4个字节,则该链表的存储密度是___________。18.使用一个100个元素的数组存储循环队列,如果采取少用一个元素空间的方法来区别循环队列的队空和队满,约定队头指针front等于队尾指针rear时表示队空。若为front=8,rear=7,则队列中的元素个数为___________。19.3个结点可以组成___________种不同树型的二叉树。20.用5个权值{3,2,4,5,1}构造的哈夫曼(Huffman)树的带权路径长度是___________。21.若无向图G中有n个顶点m条边,采用邻接矩阵存储,则该矩阵中非0元素的个数为___________。22.影响排序效率的两个因素是关键字的___________次数和记录的移动次数。23.对任一m阶的B树,每个结点中最多包含___________个关键字。24.若两个关键字通过散列函数映射到同一个散列地址,这种现象称为___________。如果要为文件中的每个记录建立一个索引项,则这样建立的索引表称为___________。三、解答题(本大题共4小题,每小题5分,共20分)26.要在[0..n-l]的向量空间中建立两个栈stackl和stack2,请回答:(1)应该如何设计这两个栈才能充分利用整个向量空间?(2)若stackl的栈顶指针为topl,stack2的栈顶指针为top2,如果需要充分利用整个向量空间,则:栈stackl空的条件是:___________;栈stack2空的条件是:___________;栈stackl和栈stack2满的条件是:___________。27.已知广义表如下:A=(B,y)B=(x,L)L=(a,b)要求:(1)写出下列操作的结果tail(A)=_______________.head(B)=______________。(2)请画出广义表A对应的图形表示。28.已知二叉树如下:请画出该二叉树对应的森林。29.请回答下列问题:(1)英文缩写DAG的中文含义是什么?(2)请给出下面DAG图的全部拓扑排序。四、算法阅读题(本大题共4小题,每小题5分,共20分)已知线性表(a1,a2,a3...,an)按顺序存放在数组a中,每个元素均为整数,下列程序的功能是将所有小于0的元素移到全部大于等于0的元素之前。例如,有7个整数的原始序列为(x,x,-x,-x,x,x,-x),变换后数组中保存的序列是(-x,-x,-x,x,x,x,x)。请在程序处填入合适的内容,使其成为完整的算法。f30(inta[],intn){intk,m,temp;m=(1);while(a[m]0&&mn)m=(2);k=m;while(kn){while(a[k]=0&&kn)k=(3);if(kn){temp=a[k];a[k]=a[m];a[m]=(4);m=(5);}}}(1)(2)(3)(4)(5)31.阅读下列程序,并回答问题:#includestdio.hsubstr(char*t,char*s,intpos,intlen){while(len0&&*s){*t=*(s+pos-l);t++;s++;len--;}*t='\0';页}char*f31(char*s){chart[100];if(strlen(s)=1)returns;substr(t,s,1,1);substr(s,s,2,strlen(s)-1);f31(s);returnstrcat(s,t);}main(){charstr[100]=''String'';printf(''%s\n'',f31(str));}(1)请写出执行该程序后的输出结果;(2)简述函数f31的功能。32.下面程序实现插入排序算法。typedefstruct{intkey;Infootherinfo;}SeqList;voidInsertSort(SeqListR[],intn){/*待排序列保存在R[1..n]中*/SeqListx;inti,j,k,lo,hi,mi;for(i=2;i=n;i++){(1);lo=1;hi=i-l;while(lo=hi){mi=(lo+hi)/2;((2))break;if(R[mi].keyx.key)hi=mi-l;elselo=mi+l;}if(mi=lo)k=i-mi;elsek=i-mi-1;for(j=0;jk;j++)(3);R[i-j]=x;}}在空白处填写适当的内容,使该程序功能完整。(1)(2)(3)33.设有单链表类型定义如下:typedefstructnode{intdata;structnode*next;}*LinkList;阅读下列算法,并回答问题:voidf33(LinkListhead,intA,intB){LinkListp=NULL;While(head!=NULL){if(head-dataA&&head-dataB)p=head;head=head-next;}if(p!=NULL)printf(%d\n,p-data);}页(1)已知链表h如下图所示,给出执行f33(h,5,8)之后的输出结果;(2)简述算法f33的功能。五、算法设计题(本题10分)34.已知二叉树的定义如下:typedefstructnode{intdata;structnode*lchild,*rchild;}*Bitptr;编写递归算法求二叉树的高度。函数原型为:intf34(Bitptrt);中国自考人()——改写昨日遗憾创造美好明天!用科学方法牢记知识点顺利通过考试!
本文标题:全国2010年10月自学考试数据结构试题
链接地址:https://www.777doc.com/doc-2651745 .html