- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构答案与评分标准(3)
一、选择题(每小题2分,共20分)
1-5 ABBDC 6-10 DBABA
二、填空题(每空1分,共15分)
1、集合、线性结构、树型结构 2、空 3、入栈 、出栈
4、单向循环链表 5、 (R-P+N)%N 6、逻辑关系、存储关系
7、Loc(a11)+((i-1)*m+j-1)*2 8、活动、优先关系 9、比较、移动
三、应用题(43分)
1、(6分)对任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
证明:设二叉树的结点总数为n,度为1的结点个数为n1,则有:
n=n0+n1+n2 (1)
又在二叉树中除了根结点每个结点都有一个分支指向它,这些分支是有度为1和度为2的结点发出的,由此得到:
n-1=n1+2*n2 (2)
由式(1)和(2)得n0=n2+1,证毕。
评分标准:叙述定理得2分,证明得4分,其他酌情扣分。
2、(8分)哈夫曼树为:
由此可得哈夫曼编码分别为:
a:000 b:001 c
d:101 e:01
评分标准:得出哈夫曼树给4分,给出哈夫曼编码给4分,步骤不全酌情给分。
3、(8分)二叉排序树的构造过程如下:
5分
平均查找长度:ASL=(1+2*2+4*3+2*4+5)/10=3 3分
评分标准:得出二叉判定树给5分,求出平均查找长度给3分,步骤不全酌情给分。
4、(7分)拓扑序列构造过程
拓扑有序序列有两种:ABCDEF和ACBDEF
评分标准:只有结果没有过程给5分,过程不全或过程不正确酌情扣分。
5、(8分)邻接矩阵为
最小生成树为:
评分标准:写出邻接矩阵给3分,最小生成树给5分,只有结果没有过程给3分,过程不全或过程不正确酌情扣分。
6、(6分)快速排序的思想:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
一趟快速排序的结果:40,38,27,20,13,49,76,80,65
评分标准:写出快速排序思想给3分,给出一趟排序结果给3分。
四、算法题(22分)
1、(8分)
linklist delete ( linklist L)
{
linklist p,q;
p=L-next; q=p; 1分
while (p!=NULL)
{
if (p-dataq-data) q=p;
p=p-next;
} 6分
return q;; 8分
}
2、(7分)
void MergeList(Sqlist la, Sqlist lb, Sqlist lc)
{ pa=la.elem; pb=lb.elem;
lc.length=la.length+lb.length;
lc.listsize=lc.length;
pc=lc.elem=(ElemType*)malloc
(lc.listsize*sizeof(ElemType);
pal=la.elem+la.length-1;
pbl=lb.elem+lb.length-1;
while(pa=palpb=pbl)
{//归并
if(*pa=*pb) *pc++=*pa++;
else *pc++=*pb++;
}
while(pa=pal)*pc++=*pa++;
while(pb=pbl)*pc++=*pb++;
}
3、(7分)
int Locate_Bin(SSTable ST,int key) { int *r; r=ST.elem; if(keyr .key) return 0; else if(key=r[ST.length].key) return ST.length; low=1;high=ST.length; 2分 while(lowhigh)
文档评论(0)