ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:62KB ,
资源ID:1375655      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1375655.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【学历类职业资格】数据结构自考题-9及答案解析.doc)为本站会员(eventdump275)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【学历类职业资格】数据结构自考题-9及答案解析.doc

1、数据结构自考题-9 及答案解析(总分:105.00,做题时间:90 分钟)一、单项选择题(总题数:15,分数:30.00)1.为便于判别有向图中是否存在回路,可借助于 ( ) A广度优先搜索算 B最小生成树算法 C最短路径算 D拓扑排序算法(分数:2.00)A.B.C.D.2.在头指针为 head 的非空单循环链表中,指针 p 指向尾结点,下列关系成立的是 ( ) Apnext=head BpnextNext=head Cpnext=NULL Dp=head(分数:2.00)A.B.C.D.3.设有 6 个结点的无向图,该图至少应有( )条边才能确保是一个连通图。 A5 B6 C7 D8(分数

2、:2.00)A.B.C.D.4.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字 b 的过程中,先后进行比较的关键字依次为 ( ) Af,c,b Bf,d,b Cg,c,b Dg,d,b(分数:2.00)A.B.C.D.5.以下有关数据结构的叙述,正确的是 ( ) A线性表的线性存储结构优于链式存储结构 B二叉树的第 i 层上有 2i-1个结点,深度为 K 的二叉树上有 2k-1个结点 C二维数组是其数据元素为线性表的线性表 D栈的操作方式是先进先出(分数:2.00)A.B.C.D.6.设 rear 是指向非空带头结点的循环单链表的尾指针,则删除起始结点的操

3、作可表示为( ) As=rear; Brear=rearnext; rear=rearnext; free(rear); free(s); Crear=rearnextnext; Ds=rearnextnext; free(rear); rearnextnext=snext; free(s);(分数:2.00)A.B.C.D.7.采用分治法进行排序的方法是( ) A快速排序 B插入排序 C堆排序 D希尔排序(分数:2.00)A.B.C.D.8.对长度为 n 的关键字序列进行堆排序的空间复杂度为 ( )AO(log 2n) BO(1) CO(n) DO(n*log 2n)(分数:2.00)A.B

4、.C.D.9.在桶排序中,其平均时间复杂度是( ) AO(1) BO(n) CO(n 2) DO(1gn)(分数:2.00)A.B.C.D.10.森林 T 中有 4 棵树,第一、二、三、四棵树的结点个数分别是 n1,n 2,n 3,n 4,那么当把森林 T 转换成一棵二叉树后,其根结点的左孩子上有( )个结点。 An 1-1 Bn 1 Cn 1+n2+n3 Dn 2+n3+n4(分数:2.00)A.B.C.D.11.数据结构是 ( ) A一种数据类型 B数据的存储结构 C一组性质相同的数据元素的集合 D相互之间存在一种或多种特定关系的数据元素的集合(分数:2.00)A.B.C.D.12.两个字

5、符串相等的条件是 ( ) A串的长度相等 B含有相同的字符集 C都是非空串 D串的长度相等且对应的字符相同(分数:2.00)A.B.C.D.13.邻接表存储结构下图的深度优先遍历算法结构类似于于叉树的( ) A先序遍历 B中序遍历 C后序遍历 D按层遍历(分数:2.00)A.B.C.D.14.如果我们采用二分查找法查找一个长度为 n 的有序表,则查找每个元素的平均比较次数( )对应的判定树的高度(假设树高 h2)。 A大于 B小于 C等于 D无法确定(分数:2.00)A.B.C.D.15.一个具有 N 个顶点的有向图最多有( )条边。 AN(N-1)/2 BN(N-1) CN(N+1) DN(

6、N+1)/2(分数:2.00)A.B.C.D.二、填空题(总题数:10,分数:20.00)16.在线性表的顺序存储中,元素之间的逻辑关系是通过_决定的;在线性表的链接存储中,元素之间的逻辑关系是通过_决定的。(分数:2.00)填空项 1:_17.对于一个二维数组 Amn,若按行序为主序存储,则任一元素 Aij相对于 A00的地址为 1。(分数:2.00)填空项 1:_18.若序列中关键字相同的记录在排序前后的相对次序不变,则称该排序算法是 1 的。(分数:2.00)填空项 1:_19.对于数组,通常具有的基本操作有_种,它们分别是_。(分数:2.00)填空项 1:_20.如果我们定义一个长度为

7、 N 的串空间,则它最多能放 1 个字符。(分数:2.00)填空项 1:_21.已知广义表 A=(a,b,c),(d,e,f),则运算 head(head(tail(tail(A)= 1。(分数:2.00)填空项 1:_22.若对关键字序列(43,02,80,48,26,57,15,73,21,24,66)进行一趟增量为 3 的希尔排序,则得到的结果为 1。(分数:2.00)填空项 1:_23.无向图的邻接矩阵是 1,并且主对角线上的元素的值为 2。(分数:2.00)填空项 1:_24.散列函数的作用是: 1。(分数:2.00)填空项 1:_25.在按照顺序存储方式存储的数组中,元素 aij的

8、存储地址应该是数组的 1 加上排在 aij前面的元素所占用的单元数。(分数:2.00)填空项 1:_三、解答题(总题数:3,分数:25.00)26.对序列(48,37,63,96,22,31,50,55,11)进行升序的堆排序,写出构建的初始(大根)堆及前两趟重建堆之后的序列状态。 初始堆: 第 1 趟: 第 2 趟:(分数:5.00)_利用广义表的 head 和 tail 操作,可从广义表 L=(a,b),(c,d) 中分解得到原子 c,其操作表达式为 head(head(tail(L); 分别写出从下列广义表中分解得到 b 的操作表达式。 (1)L1=(a,b,c,d); (2)L2=(a

9、),(b),(c),(d)。(分数:10.00)_(1)画出对表长为 13 的有序顺序表进行二分查找的判定树; (2)已知关键字序列为(12,14,16,21,24,28,35,43,52,67,71,84,99),写出在该序列中二分查找 37 时所需进行的比较次数。(分数:10.00)_四、算法阅读题(总题数:2,分数:20.00)假设学生成绩按学号增序存储在带头结点的单链表中,类型定义如下: typedef struct Node int id; /*学号*/ int score; /*成绩*/ srruct Node*next; LNode,*LinkList; 阅读算法 f31,并回答

10、问题: (1)设结点结构为 ,成绩链表 A 和 B 如图所示,画出执行算法 f31(A,B)后 A 所指的链表; (分数:10.00)_阅读下列算法,并回答问题: (分数:10.00)_五、算法设计题(总题数:1,分数:10.00)27.对一个有 t 个非零值元素的 mn 矩阵,用 B0t,13的数组来表示,其中第 0 行的三个元素分别是 m,n,t,从第一行开始到最后一行,每行表示一个非零元素,第一列为矩阵元素行号,第二列为其列号,第三列为其元素量,对这样的表示法,试编写一个算法确定任意一个元素 Aij的位置,并考虑若修改其元素值须用多少时间?(设 B 中第 1 列原行号是递增的)(分数:1

11、0.00)_数据结构自考题-9 答案解析(总分:105.00,做题时间:90 分钟)一、单项选择题(总题数:15,分数:30.00)1.为便于判别有向图中是否存在回路,可借助于 ( ) A广度优先搜索算 B最小生成树算法 C最短路径算 D拓扑排序算法(分数:2.00)A.B.C.D. 解析:2.在头指针为 head 的非空单循环链表中,指针 p 指向尾结点,下列关系成立的是 ( ) Apnext=head BpnextNext=head Cpnext=NULL Dp=head(分数:2.00)A. B.C.D.解析:解析 在单链表中,将终端结点的指针域 NULL 改为指向表头结点或开始结点,就

12、得到了单链形式的循环链表,并简单称为单循环链表。故由题目中此单循环锚表的头指针为 head,指针 p 指向尾结点,可得 pnext=head。3.设有 6 个结点的无向图,该图至少应有( )条边才能确保是一个连通图。 A5 B6 C7 D8(分数:2.00)A. B.C.D.解析:4.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字 b 的过程中,先后进行比较的关键字依次为 ( ) Af,c,b Bf,d,b Cg,c,b Dg,d,b(分数:2.00)A. B.C.D.解析:5.以下有关数据结构的叙述,正确的是 ( ) A线性表的线性存储结构优于链式存储结

13、构 B二叉树的第 i 层上有 2i-1个结点,深度为 K 的二叉树上有 2k-1个结点 C二维数组是其数据元素为线性表的线性表 D栈的操作方式是先进先出(分数:2.00)A.B.C. D.解析:6.设 rear 是指向非空带头结点的循环单链表的尾指针,则删除起始结点的操作可表示为( ) As=rear; Brear=rearnext; rear=rearnext; free(rear); free(s); Crear=rearnextnext; Ds=rearnextnext; free(rear); rearnextnext=snext; free(s);(分数:2.00)A.B.C.D.

14、解析:7.采用分治法进行排序的方法是( ) A快速排序 B插入排序 C堆排序 D希尔排序(分数:2.00)A. B.C.D.解析:8.对长度为 n 的关键字序列进行堆排序的空间复杂度为 ( )AO(log 2n) BO(1) CO(n) DO(n*log 2n)(分数:2.00)A.B. C.D.解析:解析 由于建初始堆所需的比较次数较多,所以堆排序不适宜于记录数较少的文件。堆排序是就地排序,辅助空间为 0(1),但它是不稳定的。9.在桶排序中,其平均时间复杂度是( ) AO(1) BO(n) CO(n 2) DO(1gn)(分数:2.00)A.B. C.D.解析:10.森林 T 中有 4 棵

15、树,第一、二、三、四棵树的结点个数分别是 n1,n 2,n 3,n 4,那么当把森林 T 转换成一棵二叉树后,其根结点的左孩子上有( )个结点。 An 1-1 Bn 1 Cn 1+n2+n3 Dn 2+n3+n4(分数:2.00)A. B.C.D.解析:11.数据结构是 ( ) A一种数据类型 B数据的存储结构 C一组性质相同的数据元素的集合 D相互之间存在一种或多种特定关系的数据元素的集合(分数:2.00)A.B.C.D. 解析:12.两个字符串相等的条件是 ( ) A串的长度相等 B含有相同的字符集 C都是非空串 D串的长度相等且对应的字符相同(分数:2.00)A.B.C.D. 解析:13

16、.邻接表存储结构下图的深度优先遍历算法结构类似于于叉树的( ) A先序遍历 B中序遍历 C后序遍历 D按层遍历(分数:2.00)A. B.C.D.解析:14.如果我们采用二分查找法查找一个长度为 n 的有序表,则查找每个元素的平均比较次数( )对应的判定树的高度(假设树高 h2)。 A大于 B小于 C等于 D无法确定(分数:2.00)A.B. C.D.解析:15.一个具有 N 个顶点的有向图最多有( )条边。 AN(N-1)/2 BN(N-1) CN(N+1) DN(N+1)/2(分数:2.00)A.B. C.D.解析:二、填空题(总题数:10,分数:20.00)16.在线性表的顺序存储中,元

17、素之间的逻辑关系是通过_决定的;在线性表的链接存储中,元素之间的逻辑关系是通过_决定的。(分数:2.00)填空项 1:_ (正确答案:相邻位置 链接指针)解析:17.对于一个二维数组 Amn,若按行序为主序存储,则任一元素 Aij相对于 A00的地址为 1。(分数:2.00)填空项 1:_ (正确答案:ij+i 全元素位置)解析:18.若序列中关键字相同的记录在排序前后的相对次序不变,则称该排序算法是 1 的。(分数:2.00)填空项 1:_ (正确答案:稳定)解析:19.对于数组,通常具有的基本操作有_种,它们分别是_。(分数:2.00)填空项 1:_ (正确答案:两 查找和修改)解析:20

18、.如果我们定义一个长度为 N 的串空间,则它最多能放 1 个字符。(分数:2.00)填空项 1:_ (正确答案:N1)解析:21.已知广义表 A=(a,b,c),(d,e,f),则运算 head(head(tail(tail(A)= 1。(分数:2.00)填空项 1:_ (正确答案:e)解析:22.若对关键字序列(43,02,80,48,26,57,15,73,21,24,66)进行一趟增量为 3 的希尔排序,则得到的结果为 1。(分数:2.00)填空项 1:_ (正确答案:15,02,21,24,26,57,43,66,80,48,73)解析:23.无向图的邻接矩阵是 1,并且主对角线上的元

19、素的值为 2。(分数:2.00)填空项 1:_ (正确答案:对称零)解析:24.散列函数的作用是: 1。(分数:2.00)填空项 1:_ (正确答案:压缩待处理的下标范围,待处理的|u|个值减少到 m 个值,从而降低空间开销)解析:25.在按照顺序存储方式存储的数组中,元素 aij的存储地址应该是数组的 1 加上排在 aij前面的元素所占用的单元数。(分数:2.00)填空项 1:_ (正确答案:基地址)解析:三、解答题(总题数:3,分数:25.00)26.对序列(48,37,63,96,22,31,50,55,11)进行升序的堆排序,写出构建的初始(大根)堆及前两趟重建堆之后的序列状态。 初始

20、堆: 第 1 趟: 第 2 趟:(分数:5.00)_正确答案:(初始堆:(96,55,63,48,22,31,50,37,11) 第 1 趟:(63,55,50,48,22,3l,11,37,96) 第 2 趟:(55,48,50,37,22,31,11,63,96)解析:利用广义表的 head 和 tail 操作,可从广义表 L=(a,b),(c,d) 中分解得到原子 c,其操作表达式为 head(head(tail(L); 分别写出从下列广义表中分解得到 b 的操作表达式。 (1)L1=(a,b,c,d); (2)L2=(a),(b),(c),(d)。(分数:10.00)_正确答案:(he

21、ad(tail(L1)解析:_正确答案:(head(head(tail(head(L2)解析:(1)画出对表长为 13 的有序顺序表进行二分查找的判定树; (2)已知关键字序列为(12,14,16,21,24,28,35,43,52,67,71,84,99),写出在该序列中二分查找 37 时所需进行的比较次数。(分数:10.00)_正确答案:( )解析:_正确答案:(3)解析:四、算法阅读题(总题数:2,分数:20.00)假设学生成绩按学号增序存储在带头结点的单链表中,类型定义如下: typedef struct Node int id; /*学号*/ int score; /*成绩*/ sr

22、ruct Node*next; LNode,*LinkList; 阅读算法 f31,并回答问题: (1)设结点结构为 ,成绩链表 A 和 B 如图所示,画出执行算法 f31(A,B)后 A 所指的链表; (分数:10.00)_正确答案:()解析:_正确答案:(对于表 A 中成绩低于 60 的学生,如果在表 B 中也有成绩记录,则将表 A 中的成绩修改为其在表 B 中的成绩;但若其在表 B 中的成绩高于 60 分,则只改为 60 分。)解析:阅读下列算法,并回答问题: (分数:10.00)_正确答案:(3)解析:_正确答案:(返回无向图 g 中连通分量的个数。)解析:五、算法设计题(总题数:1,

23、分数:10.00)27.对一个有 t 个非零值元素的 mn 矩阵,用 B0t,13的数组来表示,其中第 0 行的三个元素分别是 m,n,t,从第一行开始到最后一行,每行表示一个非零元素,第一列为矩阵元素行号,第二列为其列号,第三列为其元素量,对这样的表示法,试编写一个算法确定任意一个元素 Aij的位置,并考虑若修改其元素值须用多少时间?(设 B 中第 1 列原行号是递增的)(分数:10.00)_正确答案:(分析题意可得其算法思想为: 首先可在数组 B 中找到相应的行,然后找到相应的列,即可修改其元素值,可假定要修改的 Aij,原先就具有非零值。从而可将算法描述为: lorte(B,t,i,j,

24、v) /*确定任意一个元素 Aij的位置*/ datatype B;/*B 的杆标为 0t 和 13*/ int t,i,j; float v; datatype A; /*A 的下标为 1m 和 1n,A 表示 mn 矩阵*/ int p; p=1; while(Bp1!=1) if(pt)printf Chasnt element found/n“); else while(Bp1=i)*(p=t) if(Bp1=i) else printf (“no element found/n“); /*lorte*| 显然,在本算法中可能出现的最坏情况:一是需要修改的元素位于 B 中最后一行;二是 Bij先的元素值为零,而无法在 B 中查找到相应的位置。所以,在这两种情况下的时间复杂度为 0(t)。)解析:

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1