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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(数据结构测试题答案0603.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构测试题答案0603.docx

1、数据结构测试题答案0603第1章 绪论答案一、填空题1、操作对象,关系,操作2、数据对象,关系3、线性结构,非线性结构,集合,线性结构,树型结构,图型结构4、一对一,一对多,多对多5、无,1,无,16、前驱,1,7、任意8、逻辑结构,物理结构,运算9、顺序结构,链式结构,索引结构,散列结构10、插入,删除,修改,查找,排序11、时间,空间二、单项选择题C C A C B三、判断1-4: 5-8:四、(1)、n3 (2)、n(n+1)(n+2)/6(3)、n(n+1)/2(4)、n(5)、int(sqrt(n))(向下取整)(6)、1100五、1、O(m*n) 2、O(n2) 3、O(n2) 4

2、、log3n六、略第二章 线性表答案一、填空1、表长的一半,插入、删除位置2、n-i+13、n-i4、O(1),直接访问5、必定,不一定6、头指针,头结点的指针域,其前驱结点的指针域7、前驱结点,O(n)8、p-next=La9、a) s-next=p-next; p-next=s; b) q=L; while(q-next!=p) q=q-next; q-next=s; s-next=p; c) s-next=L; L=s; d) q=p; while(q-next!=NULL) q=q-next; s-next=q-next; q-next=s;二、判断正误1-5: 6-10: 三、单项选

3、择题CAAAC DBCBD四、简答题1、 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。优点:存储密度大(1),存储空间利用率高。缺点:插入或删除元素时不方便。链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(1),存储空间利用率低。顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表

4、。2、单链表中不可以,因为无法找到其前驱结点;单循环链表可以,时间复杂度为O(n)五、阅读分析题Status DeleteK(SqList&a, int i, int k)/本过程从顺序存储结构的线性表a中删除第i个元素起的k个元素if ( i1 | k a.length ) return INFEASIBLE; /参数不合法elsefor(count = 1; count =i+1; j-) a.elemj-1 = a.elemj;a.length - -; return OK; / DeleteK注:花双线的地方为错误的地方改后:Status DeleteK(SqList&a, int i

5、, int k)/本过程从顺序存储结构的线性表a中删除第i个元素起的k个元素if ( i1 | k a.length+1 ) return INFEASIBLE; /参数不合法elsefor ( j = i+k; jnext=p-next; p-next=s;2、(1) void Reverse_Sq(SqList &L) for(i=0; j=L.length-1; ij; i+, j-) L.elemi L.elemj;(2) void Reverse_LinkList(LinkList &L) p=L-next; / p指向首元结点 L-next=NULL: / 头结点的next置为空,

6、即和后面的结点断开,分成2个单链表,一个是只有头结点的空链表,一个是含有n个数据结点的链表 while(p) / 当p不空时,即还有未处理的结点 /将数据结点依次插入头结点之后,即采用头插法 q=p-next; / q指示p的后继结点 p-next=L-next; / p所指结点插入头结点之后 L-next=p; / 头结点的next指向*p结点 p=q; / p指向下一结点 3、void Delete_X(LinkList &head) p=head;q=head-next; while(q!=head) if(q-data=x) p-next=q-next; q=p-next; else

7、p=q; q=q-next; 4、void devide(LinkList &L, LinkList &La, LinkList &Lb, LinkList &Lc) La=L;/La利用原表头结点 Lb=(LinkList) malloc(sizeof(LNode); Lc=(LinkList) malloc(sizeof(LNode); p=L-next; La-next= Lb-next= Lc-next=NULL; pa=La;pb=Lb;pc=Lc; while(p) q=p-next; if(p-data=a& p-datadata=A& p-datanext=p;/字母插入La表

8、中 else if(p-data=0& p-datanext=p;/数字插入Lb中 else pc-next=p;/其他插入Lc中 p=q; pa-next=La;/形成循环链表 pb-next=Lb; pc-next=Lc; 第三章 栈和队列一、选择题1-5:DCCBD 6-10:AB二、简答题1、略(见课件)2、略3、思路:考虑栈里元素最多的时候有几个元素,栈的容量就是几。答案:3(栈里元素最多的时候是s1,s5,s6)4、(1)将栈中的数据逆置(2)删除栈s中所有值为e的元素(3)将队列Q中的元素逆置三、算法题见第3章课后习题答案第四章 串一、选择题BBB二、简答题1、 14; “IAM

9、A” “” 6 “IAMAWORKER” “IAMAGOODWORKER” (表示空格)2、略第五章 数组和广义表一、选择题CBBD二、填空题1、线性结构,顺序存储结构,行优先存储,列优先存储,(i*n+j)*L(L为每个元素的字节数)2、326(=200+12*10+6)*13、k=i(i+1)/2+j+1(注意数组S从1号单元开始存储)三、简答题1、(1)B容量应为55; (2)行序存储上三角(i=j,行列下标从0开始),第i行存储的元素个数为n-i,这些元素从Aii-Ain-1,因此,A85(下三角中的元素)的地址应转换为求A58的地址。k=(n+(n-1)+(n-i+1))+j+1-i

10、-1=i(2n-i+1)/2+j-i=i(2n-i-1)+j i=j时所以:k=5*(2*10-5-1)/2+8=432、矩阵元素从A00,即行列下标从0开始。k=3*i-1+j-i+1-1=2i+j-13、第1种结构:第2种结构:4、(1)GETHEAD【(a,B,(c,D)】=(a,B,(c,D)(2)GETTAIL【(a,B,(c,D)】=()(3)GETTAIL【GETHEAD【(a,B,(c,D)】=(B,(c,D)(4)GETHEAD【GETTAIL【GETHEAD【(a,B,(c,D)】=B5、(),(),2,2四、void move(ElemType C ,int n) i=0

11、; j=n-1; while(ij) while(Ci%2!=0) i+; /从前向后找到1个偶数 while(Cj%2=0) j-; /从后向前找到1个奇数 ciCj; /将前面找到的偶数和后面找到的奇数交换,即将奇数前移,偶数后移 i+; j-; 注:本算法虽然是两层循环,但i、j指针从两端向中间移动,相遇时停止,只对数组扫描了一遍,因此时间复杂度为O(n)第六章 树与森林一、选择题1-5:DBCAC 6-10:BBBAB(同2) 11-12:AA二、填空题1、n+12、1,50(即最后一个叶子的双亲,101/2)3、k,2k-14、335、32三、判断题1-5: 6-10: 11:四、简

12、答题1、高度最小的树高度为2,有n-1个叶子结点,1个分支结点;高度最大的树的高度为n,有1个叶子结点,n-1个分支结点。2、3、(1)任意结点均无左孩子的二叉树(2)任意结点均无右孩子的二叉树(3)只有根结点的二叉树4、用指针q指向要求的后继结点。if(p-Rtag=1) q=p-Rc;else if(p-Ltag=0) q=p-Lc;else q=p-Rc;5、用指针q指向要求的后继结点。if(p-Rtag=1)q=p-Rc;else q=p-Rc;/右子树的根 while(q-Ltag=0) q=q-Lc; /最左下的结点四、构造题1、二叉树为:后序遍历序列为:EDCBIHJGFA2、参

13、考答案(不唯一,但两个组合的数值是固定的,左右可颠倒):编码:c1:0100 c2:10 c3:0000 c4:0101 c5:001 c6:011 c7:11 c8:0001WPL=2*(25+36)+3*(10+11)+4*(3+4+5+6)=2573、五、算法设计题1、int leaves(BiTree t) if(t=NULL) return 0; else if(t-lchild=NULL&t-rchild=NULL) return 1; else return leaves(t-lchild)+leaves(t-rchild);2、void exchange(BiTree &t)

14、if(t=NULL|t-lchild=NULL&t-rchild=NULL) return; else exchange(t-lchild); exchange(t-rchild); t-lchild t-rchild; 3、status zhengze(BiTree t) if(t=NULL|t-lchild=NULL&t-rchild=NULL) return TRUE; else if(t-lchild& ! t-rchild | ! t-lchild& t-rchild) return FALSE; else return zhengze(t-lchild)&zhengze(t-rch

15、ild);4、int node(BiTree t) if(t=NULL | t-lchild=NULL&t-rchild=NULL) return 0;/空树或只有1个根结点的二叉树中,度为1的结点有0个 else if(t-lchild& ! t-rchild | ! t-lchild& t-rchild) /根结点只有左子树或只有右子树 return 1+node(t-lchild)+node(t-rchild);/ 根结点度为1,加上左右子树中度为1的结点数 else return node(t-lchild)+node(t-rchild);/ 根结点度不为1,返回左右子树中度为1的结点

16、数第七章 图一、选择题1-5:CBCCD 6-10:(AC)AA(BC)B二、填空题1、12、先i后j三、判断题1-5: 6-7:四、解答题1、有1000*1000=1000000个矩阵元素,有1000个非零元素2、邻接矩阵中第i列元素之和;将邻接矩阵中第i行元素清0。3、 (从顶点1出发的深度优先生成树) (从顶点2出发的广度优先生成树)4、顶点i=1i=2i=3i=4i=5i=6215(1,2)15(1,2)15(1,2)15(1,2)15(1,2)15(1,2)32(1,3)412(1,4)12(1,4)11(1,3,6,4)11(1,3,6,4)510(1,3,5)10(1,3,5)6

17、6(1,3,6)716(1,3,6,7)16(1,3,6,7)14(1,3,6,4,7)vj365472S=1S=1,3S=1,3,6S=1,3,6,5S=1,3,6,5,4S=1,3,6,5,4,7S=1,3,6,5,4,7,2标红色的为到各顶点的最短路径的长度和路径。5、(1)顶点123456入度321122出度022313(2)邻接矩阵(3)邻接表011223344556(4)逆邻接表011223344556(5)强连通分量6、略7、略。请参考题48、略五、算法设计题1、见邮箱里的实验程序2、见邮箱里的实验程序3、见邮箱里的实验程序补充:将习题集中关于最小生成树的题目做一下。第九章 查找

18、一、选择题1-5:(CACB)DCDD 6-10:CCDBB 11-12:DB二、填空题1、972、索引表,块3、164、1,2,4,8,5,3.75、哈希查找6、O(n),O(log2(n+1),O()7、4,4,8,38、hash(K), m-1, i, K9、中序三、简答题1、当待查找的关键字无序排列时,查找性能较好;当待查找的关键字序列有序时性能最差。2、折半查找的判定树:ASL=(1*1+2*2+3*4+4*3)/10=2.93、下标012345678910元素2241300153461367查找次数11221126H(22)=(3*22)%11=0H(41)=(3*41)%11=2

19、H(53)=(3*53)%11=5H(46)=(3*46)%11=6H(30)=(3*30)%11=2,冲突;H1(30)=3H(13)=(3*13)%11=6,冲突;H1(13)=7H(01)=(3*1)%11=3,冲突;H1(01)=4H(67)=(3*67)%11=3,冲突;H1(67)=4,冲突;H2(67)=5,冲突;H3(67)=6,冲突;H4(67)=7,冲突;H5(67)=8ASL成功=(1*4+2*3+6)/8=2ASL不成功=(1+0+7+6+5+4+3+2+1+0+0)/11=29/11=2.644、(1)二叉排序树ASL=(1*1+2*2+3*3+3*4+2*5+6)/

20、12=4.25(2)折半查找的判定树请自己画,请参考题2。ASL=(1*1+2*2+3*4+4*5)/12=37/12(3*)平衡的二叉排序树(步骤略,上课已讲)ASL=(1+2*2+3*4+4*4+5*1)/12=19/65、线性探测处理冲突略,请参考题3链地址法处理冲突:ASL=(5*1+2*2+2*3)/9=5/36、A (2) B(1) C(4) D(3)四、算法设计题1、略2、status judge(BiTree t) if(!t | ! t-lchild & !t-rchild) return TRUE;/ 空树或只有根结点,是二叉排序树 else if(t-lchild & t

21、-lchild -datat-data | t-rchild & t-rchild-datadata) / 左孩子值大于根结点的值或右孩子值小于根结点的值,不是二叉排序树 return FALSE; else if(!t-rchild&t-lchild-datadata) / 只有左子树且左孩子值小于根结点的值 return judge(t-lchild); / 若左子树是二叉排序树则整棵树是,否则不是 else if(!t-lchild&t-rchild-datat-data) /只有右子树且左孩子值大于根结点的值 return judge(t-rchild); / 若右子树是二叉排序树则整

22、棵树是,否则不是 else if(t-lchild & t-rchild) /左右子树都有return judge(t-lchild) & judge(t-rchild); /左右子树都是二叉排序树则整棵树是,/否则不是3、int level(BiTree t,BiNode *p) if(!t) return 0;h=1; q=t; while(q) if(p-data=t-data) return h; else if(p-datadata) q=q-lchild; h+;/ 小于根的值,向左子树上继续查找,结点层次加1 else q=q-rchild; h+;/ 大于根的值,向右子树上继续

23、查找,结点层次加1 return h;4、void Insert(SqList &L, ElemType x) low=0; high=L.length-1; while(low=high) mid=(low+high)/2; if(xhigh; j-) L.elemj+1=L.elemj;L.elemhigh+1=x; 第十章 排序一、选择题1-5:CBBDD 6-10:ABBCB 11-14:ADCD二、填空题1、大顶堆2、有,无3、,4、有序的5、high, low,low, high(课本上有算法)6、堆排序7、希尔排序,选择排序,快速排序,堆排序8、快速排序9、堆排序,快速排序10、

24、n-1三、判断题1-5: 6-10:四、简答题1、略2、最坏情况是关键字的初始序列已经有序时,此时,可以在第一个元素、最后一个元素、中间元素中选择值居中的元素作为枢轴,将其与第一个元素交换位置即可3、(1)087,503,512,061,908,170,897,275,653,426 (2)170, 087,275,061,426,503,897,512,653,908 (3)426,087,275,061,170,503,897,908,653,512(4)087,653,897,503,426,170,512,275,061,908(5)087,503,061,512,170,908,275,897,426,653(6)170,061,512,503,653,275,426,087,897,9084、4,1,3,2,6,5,75、A(3) B(2) C(5) D(1) E(4)五、算法设计题1、见课本2、参考测试题第五章的算法题

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1