数据结构模拟试题5参考答案..doc

数据结构模拟试题5参考答案..doc

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

·PAGE2· 数据结构上机实验与习题解析

第3部分模拟试题及参考答案 ·PAGE3·

数据结构模拟试题5参考答案

一、选择题(20分)

1-5 C C D A A

6-10 D B C B B

二、填空题(20分)

1.结点*p的左右链域为空

2.深度优先

3.N-1

4.A[N/2]

5.sq.front=(sq.fron+1)%M (sq.rear+1)%M==sq.front

6.4,9,14,17,20

7.0 入度减1 环

三、应用题(30分)

1.参考答案如下:

1)二叉树

E

E

A

B

D

G

C

F

H

I

2)对应的森林

F

F

H

I

C

E

A

B

D

G

2.参考答案如下:

80

80

60

40

120

70

100

3.参考答案如下:

1)G1的邻接表和G1的逆邻接表

1

1

2

3

4

2

3^

V1

V2^

V3

V4

4^

1^

1

1

2

3

4

V1

V2

V3

V4

4^

3^

1^

1^

2)G1的强连通分量

4.参考答案如下:

1)以所有字符的权值作为叶结点构成的哈夫曼树如下:

11

11

42

5

7

16

19

2)所有字符的哈夫曼编码如下:

A(7):0011

B(19):011

C(5):0010

D(16):010

E(42):01

F(11):000

5.参考答案如下:

事件的发生时间活动的开始时间

事件的发生时间活动的开始时间

Vi

ve

vl

ai

e

l

l-e

V1

0

0

a1

0

5

5

V2

6

7

a2

0

0

0

V3

3

3

a3

3

4

1

V4

12

12

a4

6

7

1

V5

18

18

a5

3

3

0

V6

21

21

a6

3

14

11

a7

12

12

0

a8

12

19

7

a9

18

18

0

6.参考答案如下:

1)该序列是一个小根堆

2)该序列不是一个小根堆,调整如下:

38

38

29

61

20

23

35

56

25

28

76

40

100

四.算法设计题(30分)

1.算法源代码如下:

voidfun(bitreeT,charx,intm)

{if(T)

{m++;

if(T-data==x){printf(%d,m);return;}

fun(T-lchild,x,m);

fun(T-rchild,x,m);

}

}

main()

{bitreebt;

intm=0;

fun(bt,m);

}

2.算法源代码如下:

#definemaxsize

typedefstruct{

intelem[maxsize];

inttop[2];

}stack;

stacks;

1)入栈操作

intpush(inti,intx)

{if(i0||i1){printf(输入数据有误);return0;}

if(s.top[1]-s.top[0]==1){printf(栈满);return0;}

switch(i)

{case0:s.elem[++s.top[0]]=x;break;

case1:s.elem[--s.top[1]]=x;

}

return1;

}

2)出栈操作

intpop(inti,int*x)

{if(i0||i1){printf(输入数据有误);return0;}

switch(i)

{case0:

if(s.top[0]==-1){printf(栈空);return-1;}

else*x=s.elem[s.top[0]--];

break;

case1:

if(s.top[0]==maxsize){printf(栈空);return-1;}

else*x=s.elem[s.top[1]++];

}

return1;

}

3.算法源代码如下:

voiddijkshort(mgraphG,intv)

{

ints[30];intd[30];intpre[30];

inti,j,k,p,min;

您可能关注的文档

文档评论(0)

偶遇 + 关注
实名认证
内容提供者

个人介绍

1亿VIP精品文档

相关文档