南理工09数据结构A答案.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南理工09数据结构A答案

南京理工大学课程考试-----答案及评分标准 课程名称: 数据结构 学分: 3.5 大纲编号 0 试卷编号: A 考试方式: 笔试 满分分值: 80 考试时间: 120 分钟 组卷日期: 2009年12月18日 组卷教师(签字) 赵学龙 审定人(签字) 注意:请将答案按序号写在答题纸上0分) 1. A) 2. A) 3. C) 4. C) 5. C) 6. A) 7. B) 8. D) 9. B) 10. B) 11. B) 12. A) 13. B) 14. C) 15. D) 16. A) 17. D) 18. D) 19. B) 20.B) 二、填空题(10分,每空1分) 1.O(n) 2.f-next=p-next; f-prior=p; p-next-prior=f; p-next=f; 3.(rear-front+m)% m 4.非零元很少(tm*n)且分布没有规律。 5. H=(log2N(+1 6.30 7.++a*b3*4-cd 8. 第i列非零元素个数 9. n(n-1)/2 10. 普里姆(prim)算法和克鲁斯卡尔(Kruskal)算法 简答题 1.(每小题3分共15分) (1) 1 1 1 1 1 1 1 1 1 1 1 1 (2)V1V2V5V3V4V6 (4) V1V2V3V4V5V6 (3) 2.(每小题3分共9分) 从节省存储空间考虑:先选快速排序,最后选择归并排序; 从排序结果的稳定性考虑:选择归并排序。快速排序是不稳定排序; 从平均情况下排序最快考虑:先选择快速排序。 3. (共3分)在线性表的链式存储结构中,头指针指链表的指针,若链表有头结点则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。头结点是为了操作的统一、方便而设立的,放在第一元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等),有头结点后,对在第一元素结点前插入结点和删除第一结点,其操作与对其它结点的操作统一了。而且无论链表是否为空,头指针均不为空。首元结点也就是第一元素结点,它是头结点后边的第一个结点。 4.(4分) 5. (4分) WPL=7*1+5*2+2*3+4*3=35 四、算法设计 1.(7分) int Partition(RecType R[],int l,int h) //一趟快速排序算法,枢轴记录到位,并返回其所在位置, { int i=l; j=h; R[0] = R[i]; x = R[i].key; 2分 while(ij) { while(ij R[j].key=x) j--; if (ij) R[i] = R[j]; while(ij R[i].key=x) i++; if (ij) R[j] = R[i]; 3分 }//while R[i]=R[0]; return i; 1分 }//Partition 2. (8分)核心语句段如下: pa=la-next;pb=hb-next; lc=(LinkedList )malloc(sizeof(LNode)); pc=lc;∥pc是结果链表中当前结点的前驱 2分 while(papb) if(pa-datapb-data) {pc-next=pa;pc=pa;pa=pa-next;} else {pc-next=pb;pc=pb;pb=pb-next;} if(pa)pc-next=pa; else pc-next=pb; 3分 free(la);free(lb);∥释放原来两链表的头结点。 算法时间复杂度为O(m+n),其中m和n分别为链表la和lb的长度。 2分 J I H (5) V6 V4 V3 V5 V2

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档