全国2005年10月自学考试数据结构试题卷

上传人:世*** 文档编号:175225907 上传时间:2021-03-22 格式:DOC 页数:7 大小:67.50KB
返回 下载 相关 举报
全国2005年10月自学考试数据结构试题卷_第1页
第1页 / 共7页
全国2005年10月自学考试数据结构试题卷_第2页
第2页 / 共7页
全国2005年10月自学考试数据结构试题卷_第3页
第3页 / 共7页
全国2005年10月自学考试数据结构试题卷_第4页
第4页 / 共7页
全国2005年10月自学考试数据结构试题卷_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《全国2005年10月自学考试数据结构试题卷》由会员分享,可在线阅读,更多相关《全国2005年10月自学考试数据结构试题卷(7页珍藏版)》请在金锄头文库上搜索。

1、全国2005年10月自学考试数据结构试题卷 (含答案)课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( D )A. 操作的有限集合 B. 映象的有限集合C. 类型的有限集合 D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1in)时,元素移动的次数为( D )A. n-i+1 B. I C. i+1 D. n-i3. 若不带头结点的单链表的头指针为head,则该链

2、表为空的判定条件是( A )A. head=NULL B. head-next=NULLC. head!=NULL D. head-next=head4. 引起循环队列队头位置发生变化的操作是( A )A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( D )A. 2,4,3,1,5,6 B. 3,2,4,1,6,5C. 4,3,2,1,5,6 D. 2,3,5,1,6,46. 字符串通常采用的两种存储方式是( C )A. 散列存储和索引存储 B. 索引存储和链式存储C. 顺序存储和链式存储

3、D. 散列存储和顺序存储7. 设主串长为n,模式串长为m(mn),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为( C )A. m B. n-m C. n-m+1 D. n8. 二维数组A1218采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A97的地址为( A )A. 429 B. 432 C. 435 D. 438 9. 对广义表L=(a,b),(c,d),(e,f)执行操作tail(tail(L)的结果是( B )A. (e,f) B. (e,f) C. (f) D. ( )10. 下列图示的顺序存储结构表示的二叉树是( A )11. n个顶点

4、的强连通图中至少含有( B )A. n-1条有向边 B. n条有向边C. n(n-1)/2条有向边 D. n(n-1)条有向边12. 对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( D )A. (19,23,56,34,78,67,88,92) B. (23,56,78,66,88,92,19,34)C. (19,23,34,56,67,78,88,92) D. (19,23,67,56,34,78,92,88)13. 若在9阶B-树中插入关键字引起结点分裂,则该结点在插入前含有的关键字个数为( C )A. 4 B. 5 C. 8 D. 91

5、4. 由同一关键字集合构造的各棵二叉排序树( B )A. 其形态不一定相同,但平均查找长度相同B. 其形态不一定相同,平均查找长度也不一定相同C. 其形态均相同,但平均查找长度不一定相同D. 其形态均相同,平均查找长度也都相同15. ISAM文件和VSAM文件的区别之一是( C )A. 前者是索引顺序文件,后者是索引非顺序文件B. 前者只能进行顺序存取,后者只能进行随机存取C. 前者建立静态索引结构,后者建立动态索引结构D. 前者的存储介质是磁盘,后者的存储介质不是磁盘二、填空题(本大题共10小题,每空2分,共20分)16. 数据的逻辑结构在计算机存储器内的表示,称为数据的_。存储结构17.

6、删除双向循环链表中*p的前驱结点(存在)应执行的语句是_。q = p-pre;q-pre-next = p;p-pre = q-pre;free( q );18. 栈下溢是指在_时进行出栈操作。栈空19. 已知substr(s,i,len)函数的功能是返回串s中第i个字符开始长度为len的子串,strlen(s)函数的功能是返回串s的长度。若s=ABCDEFGHIJK,t=ABCD,执行运算substr(s,strlen(t), strlen(t)后的返回值为_。DEFG /注意双引号不能少20. 去除广义表LS=(a1,a2,a3,,an)中第1个元素,由其余元素构成的广义表称为LS的_。表

7、尾21. 已知完全二叉树T的第5层只有7个结点,则该树共有_个叶子结点。23 + 7 / 2 = 1122. 在有向图中,以顶点v为终点的边的数目称为v的_。入度23. 当关键字的取值范围是实数集合时,无法进行箱排序和_排序。基数24. 产生冲突现象的两个关键字称为该散列函数的_。同义词25. 假设散列文件中一个桶能存放m个记录,则桶“溢出”的含义是,当需要插入新的记录时,该桶中_。已有m个同义词记录三、解答题(本大题共4小题,每小题5分,共20分)26. 假设以数组seqnm存放循环队列的元素,设变量rear和quelen分别指示循环队列中队尾元素的位置和元素的个数。(1)写出队满的条件表达

8、式;(2)写出队空的条件表达式;(3)设m=40,rear=13,quelen=19,求队头元素的位置;(4)写出一般情况下队头元素位置的表达式。(1) quelen = m(2) quelen = 0(3) ( 13 - 19 + 40 ) % 40 = 34(4) ( rear - quelen + m ) % m27. 已知一棵二叉树的中序序列为ABCDEFG,层序序列为BAFEGCD,请画出该二叉树。1) (A), B ,(CDEFG)2) (A), B ,( (CDE), F, (G) )BAFCGDE28. 画出下图所示有向图的所有强连通分量。3个: a 、 bce、dfg29.

9、对7个关键字进行快速排序,在最好的情况下仅需进行10次关键字的比较。(1)假设关键字集合为1,2,3,4,5,6,7,试举出能达到上述结果的初始关键字序列;(2)对所举序列进行快速排序,写出排序过程。我们知道,对n个关键自序列进行一趟快速排序,要进行n-1次比较,也就是基准和其他n-1个关键字比较。这里要求10次,而7 - 1 + 2 * ( 3 - 1 ) = 10,这就要求2趟快速排序后,算法结束。所以,列举出来的序列,要求在做partition的时候,正好将序列平分(1)4 1 3 2 6 5 7 或 4 1 3 7 6 5 2或 4 5 3 7 6 1 2或 4 1 3 5 6 2 7

10、 .(2)自己列吧 四、算法阅读题(本大题共4小题,每小题5分,共20分)30. 阅读下列算法,并回答问题:(1)设顺序表L=(3,7,11,14,20,51),写出执行f30(&L,15)之后的L;(2)设顺序表L=(4,7,10,14,20,51),写出执行f30(&L,10)之后的L;(3)简述算法的功能。void f30(SeqList*L, DataType x)int i =0, j;while (ilength & xL-datai)i+;if(ilength & x=L-datai) /找到x,则删除x,大于x的数前移for(j=i+1;jlength;j+)L-dataj-1

11、=L-dataj;L-length-; else /没找到,插入x, 大于x的数后移for(j=L-length;ji;j-)L-dataj=L-dataj-1;L-datai=x;L-length+;(1) L=(3,7,11,14,15,20,51)(2) L=(4,7,14,20,51)(3) 在顺序表L中查找数x,找到,则删除x,没找到,则在适当的位置插入x,插入后,L依然有序.31. 已知图的邻接表表示的形式说明如下:#define MaxNum 50 /图的最大顶点数typedef struct node Int adjvex; /邻接点域struct node *next; /链

12、指针域 EdgeNode; /边表结点结构描述typedef struct char vertex; /顶点域EdgeNode *firstedge; /边表头指针 VertexNode; /顶点表结点结构描述typedef struct VertexNode adjlistMaxNum; /邻接表int n, e; /图中当前的顶点数和边数 ALGraph; /邻接表结构描述下列算法输出图G的深度优先生成树(或森林)的边。阅读算法,并在空缺处填入合适的内容,使其成为一个完整的算法。typedef enum FALSE, TRUE Boolean;Boolean visitedMaxNum;v

13、oid DFSForest(ALGraph *G)int i;for(i=0;in;i+) visitedi= _(1);for(i=0;in;i+) if (!visitedi) DFSTree(G,i);void DFSTree(ALGraph *G, int i) EdgeNode *p;visitedi=TRUE;p=G-adjlisti. firstedge;while(p!=NULL) if(!visitedp-adjvex) printf(,G-adjlisti. vertex,G-adjlistp-adjvex. vertex);_(2) ;_(3) ;(1) FALSE /初始化为未访问(2) DSFTree( G, p-adjvex ); /从相邻结点往下继续深度搜索(3) p = p-next; /下一个未访问的相邻结点32. 阅读下列算法,并回答问题:(1)假设数组L8=3,0,5,1,6,4,2,7,写出执行函数调用f32(L,8)后的L;(2)写出上述函数调用过程中进行元素交换操作的总次数。void f32(int R,int n) int i,t;for (i=0;in-1;i+)while (Ri!=i) t=RRi; RRi=Ri; Ri=t;while()里是把R i 和

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号