- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)