1、 自考365领先的专注于自学考试的网络媒体与服务平台 -自考网校 免费试听.自考名师.课件更新.报名演示.学习卡.最权威的师资阵容 最及时的在线答疑 全程视频授课,反复观看 不限次数自考365网校数百门课程全面招生!基础班串讲班 祝您成功每一天! 郭建华 韩旺辰 郝玉柱 张旭娟 孙茂竹 白薇全国2006年1月高等教育自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1根据数据元素的关键字直接计算出该元素存储地址的存储方法是()A顺序存储方法B链
2、式存储方法C索引存储方法D散列存储方法2下述程序段中语句的频度是()s=0;for(i=1;im;i+)for(j=0;jnext= =headBrear-next-next= =headChead-next= =rearDhead-next-next= =rear5若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用的辅助结构是()A栈B线性表C队列D二叉排序树6已知主串s=ADBADABBAAB,模式串t=ADAB,则应用朴素的串匹配算法进行模式匹配过程中,无效位移的次数是()A2B3C4D57串s=Data Structure中长度为3的子串的数目是()A9B
3、11C12D148假设以行优先顺序存储三维数组R696,其中元素R000的地址为2100,且每个元素占4个存储单元,则存储地址为2836的元素是()AR333BR334CR435DR4349除第一层外,满二叉树中每一层结点个数是上一层结点个数的()A1/2倍B1倍C2倍D3倍10对于含n个顶点和e条边的图,采用邻接矩阵表示的空间复杂度为()AO(n)BO(e)CO(n+e)DO(n2)11如果求一个连通图中以某个顶点为根的高度最小的生成树,应采用()A深度优先搜索算法B广度优先搜索算法C求最小生成树的prim算法D拓扑排序算法12快速排序在最坏情况下的时间复杂度是()AO(n2log2n)BO
4、(n2)CO(nlog2n)DO(log2n)13能进行二分查找的线性表,必须以()A顺序方式存储,且元素按关键字有序B链式方式存储,且元素按关键字有序C顺序方式存储,且元素按关键字分块有序D链式方式存储,且元素按关键字分块有序14为使平均查找长度达到最小,当由关键字集合05,11,21,25,37,40,41,62,84构建二叉排序树时,第一个插入的关键字应为()A05B37C41D6215ISAM文件的周期性整理是为了空出()A磁道索引B柱面索引C柱面基本区D柱面溢出区二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。16数据类型按其值能
5、否分解,通常可分为_两种类型。17队列的修改是按_的原则进行的。18两个串相等的充分必要条件是两个串的长度相等且_。19数组采用顺序存储方式表示是因为通常不对数组进行_操作。20用广义表的取表头head和取表尾tail的运算,从广义表LS=(b,c,(f),(d)中分解出原子c的操作为_。21结点数为20的二叉树可能达期的最大高度为_。22带权连通图的生成树的权是该生成树上_。23所谓“就地排序”,是指排序算法辅助空间的复杂度为_的排序方法。245阶B树的根结点至少含有_个关键字。25索引文件中的索引表指示记录的关键字与_之间一一对应的关系。三、解答题(本大题共4小题,每小题5分,共20分)2
6、6假设以有序对表示从双亲结点到孩子结点的一条边,若已知树中边的集合为,请回答下列问题:(1)哪个结点是根结点?(2)哪些结点是叶子结点?(3)哪些结点是k的祖先?(4)哪些结点是j的兄弟?(5)树的深度是多少?(1)(2)(3)(4)(5)27已知有向图G的深度优先生成森林和广度优先生成森林如下。请写出该图的深度优先遍历序列和广度优先遍历序列。28当将两个长度均为n的有序表A=(a1,a2,an)与B=(b1,b2,bn)(aibj,1i,jn)归并为一个有序表C=(c1, c2,c2n)时,所需进行的元素比较次数最少可达n,最多可达2n-1。(1)假设有序表C=(2,4,5,6,7,9),试
7、举出两组A与B的例子,使它们在归并过程中进行的元素比较次数分别达到最少和最多;(2)写出一般情况下,使归并所需进行的元素比较次数分别达到最少和最多时,A与B中的元素应满足的条件。(1)(2)29对下列关键字序列(33,25,48,59,36,72,46,07,65,20)构造表长为19的散列表。假设散列函数为h(key)=key%13,用开放地址法解决冲突,探查序列为d=h(key),d+12,d-12,d+2 2,d-2 2,d+32,d-32,等等。(1)画出该散列表;(2)计算该散列表的装填因子;(3)求出等概率情况下查找成功的平均查找长度ASL。(1)(2)(3)四、算法阅读题(本大题
8、共4小题,每小题5分,共20分)30已知head为带头结点的单循环链表的头指针,链表中的数据元素依次为(a1,a2,a3,a4,an),A为指向空的顺序表的指针。阅读以下程序段,并回答问题:(1)写出执行下列程序段后的顺序表A中的数据元素;(2)简要叙述该程序段的功能。if(head-next!=head)p=head-next;A-length=0;while(p-next!=head)p=p-next;A-dataA-length +=p-data;if(p-next!=head)p=p-next;(1)(2)31已知链串的存储结构描述如下:#define NodeSize 4typede
9、f struct Node char dataNodeSize;struct Node * next; * LinkStr;阅读下列算法,并回答问题:(1)t1和t2的串值分别为Chinese和China时,写出f31(t1,t2)的返回值;(2)t1和t2的串值分别为Japan和Japanese时,写出f31(t1,t2)的返回值;(3)t1和t2的串值都为string时,写出f31(t1,t2)的返回值;(4)简述函数f31的功能。inf f31(LinkStr t1,LinkStr t2)/串值以0为结束符int i;while (1)for (i=0;idatai= =0&t2-dat
10、ai= =0return 0;if(t1-datai= =0)return 1;if(t2-datai= =0)return 1;if(t1-datait2-dataireturn 1;if(t1-dataidataireturn 1;t1=t1-next;t2=t2-next;(1)(2)(3)(4)32设二叉树采用二叉链表存储结构,结点的数据域data为字符类型。阅读下列算法,并回答问题:(1)对于如图所示的二叉树,写出执行函数f32的输出结果;(2)简述函数f32的功能。void f32(BinTree T) Stack s; /定义栈sBinTree p,q;if (T= =NULL)
11、 return;InitStack(&s);p=T;do while (p)Push(&s,p);if (p-lchild)p=p-lchild;else p=p-rchild;while (!Stack Empty(s)&q=StackTop(s)&q-rchild= =p)p=Pop(&s);printf(%c,p-data);if(!StackEmpty(s)q=StackTop(s);p=q-rchild; while (! Stack Empty(S);(1)(2)33已知有向图的邻接表表示的形式说明如下:#define Max Num 50 /图的最大顶点数typedef stru
12、ct node int adjvex; /邻接点域struct node * next; /链指针域EdgeNode; /边表结点结构描述typedef struct char vertex; /顶点域EdgeNode *firstedge; /边表头指针VertexNode;/顶点表结点结构描述typedef structVertex Node adjlist MaxNum;/邻接表int n,e; /图中当前的顶点数和边数ALGraph; /邻接表结构描述 下列函数f33是从有向图G中删除所有以vi为弧头的有向边。请在空缺处填入合适的内容,使其成为一个完整的算法。void f33 (ALG
13、raph * G, int i) int j;EdgeNode * p, *q;for (j=0;jn;j= + +)p=G-adjlist j.firstedge;while( (1) q=p; p=p-next;if(p!=NULL) if (p !=G-adjlistj.firstedge)q-next=p-next;else( (2) ;free(p);G-e=( (3) ; (1)(2)(3)五、算法设计题(本大题10分)34在带头结点的循环链表L中,结点的数据元素为整型,且按值递增有序存放。给定两个整数a和b,且ab,编写算法删除链表L中元素值大于a且小于b的所有结点。地址:北京市海淀区知春路1号 学院国际大厦18层 电话:(010)82335555 -第 7 页 共 7 页