2010华南农业大学数据结构答案
- 格式:doc
- 大小:190.50 KB
- 文档页数:6
1 装订线 华南农业大学期末考试答案(A卷)
2010-2011学年第 1 学期 考试科目: 数据结构
考试类型:(闭卷)考试 考试时间: 120 分钟
学号 姓名 年级专业
题号 一 二 三 四 总分
得分
评阅人
一、单项选择题(本大题共 10 小题,每小题 2 分,共 20 分)
1 2 3 4 5 6 7 8 9 10
D A A B B D C A C
AB
二、应用题(本大题共 8 小题,第1~7题每题6分,第8题8分,共 50 分)
1.
得分
得分
G
A
B
C
E
D
H
K
I
F
J
L
2 2、
3、哈希表:
0 1 2 3 4 5 6 7 8 9
14 01 9 23 84 55 20 27
平均查找长度ASL:(1+1+2+1+1+2+5+3)*1/8=16/8
4、
初始:29,18,25,47,58,12,51,10
第一趟:12,18,10,47,58,29,51,25
第二趟:12,18,10,47,25,29,51,58
第三趟:10,12,18,25,29,47,51,58 53
17
12 17
12 53
66
58 17
12 58
66 53
70
58
17 66
70 12
87 53 58
17 70
87 12 66 53
25 56 60 3 装订线
5、各字符频率:A:9;B:1;C:5;D:3,以频率为权值构造以下哈夫曼树:
编码时左分支为0,右分支为1,则:
A:0
B:100
C:11
D:101
6、503,87,512,61,908,170,897,275,653,462
初始堆:
7、
平均查找长度:(1+2*2+3*4+4)*1/8=21/8
A
C
B D
503
87 512
61 908 170 897
275 653 462 908
653 897
503 462 170 512
275 61 87
4
2 6
1 3 5 7
8 4 8、
三、程序填空题(本大题共10空,每空2分,共20分,注意:每空只填一个语句)
说明:阅读下面的程序,并写出程序的运行结果。
1: p=p->next;
2: s->next = p->next;
3: p->next = s;
4: --high;
5: ++low;
6: low;
7: p=f;
8: flag=TRUE;
9: SearchBST(T->lchild,key,T,p,flag);
10: SearchBST(T->rchild,key,T,p,flag);
11 L->next
12 q=p;
13 L->next=q;
14 value*10+ch-‘0’;
15 sum+value
得分 V1
V2 V3
V4 V5 12 16
2
10 18
4 22 V1
V2 V3
V4 V5 12
2
10 4
5 装订线
四、程序设计题(本大题共1小题,每小题10分,共10分)
1 void min(LinkList L){
LNode *p,*q,*r,*s;
if(L->next==NULL) return;
q=L; r=L->next; m=r->data;
while(r->next!=NULL)
{ if(r->next->data { m= r->next->data; q=r; } s=r; r=r->next; } p=q->next; if(m%2==1) {q->next=p->next; free(p); else {s->next=p; q->next=p->next; p->next=q;} } } } 2 int Level(BiTree bt) //层次遍历二叉树,并统计度为1的结点的个数 {int num=0; //num统计度为1的结点的个数 if(bt){QueueInit(Q); QueueIn(Q,bt);//Q是以二叉树结点指针为元素的队列 while(!QueueEmpty(Q)) {p=QueueOut(Q); printf(p->data); //出队,访问结点 if(p->lchild && !p->rchild ||!p->lchild && p->rchild)num++;//度为1的结点 if(p->lchild) QueueIn(Q,p->lchild); //非空左子女入队 if(p->rchild) QueueIn(Q,p->rchild); //非空右子女入队 } }//if(bt) return(num); }//返回度为1的结点的个数 得分 1.5CM 6