华中科技大学招收硕士研究生入学考试试题答案.docx

上传人:b****3 文档编号:13211110 上传时间:2023-06-12 格式:DOCX 页数:22 大小:222.29KB
下载 相关 举报
华中科技大学招收硕士研究生入学考试试题答案.docx_第1页
第1页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第2页
第2页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第3页
第3页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第4页
第4页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第5页
第5页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第6页
第6页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第7页
第7页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第8页
第8页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第9页
第9页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第10页
第10页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第11页
第11页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第12页
第12页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第13页
第13页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第14页
第14页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第15页
第15页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第16页
第16页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第17页
第17页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第18页
第18页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第19页
第19页 / 共22页
华中科技大学招收硕士研究生入学考试试题答案.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华中科技大学招收硕士研究生入学考试试题答案.docx

《华中科技大学招收硕士研究生入学考试试题答案.docx》由会员分享,可在线阅读,更多相关《华中科技大学招收硕士研究生入学考试试题答案.docx(22页珍藏版)》请在冰点文库上搜索。

华中科技大学招收硕士研究生入学考试试题答案.docx

华中科技大学招收硕士研究生入学考试试题答案

华中科技大学招收硕士研究生入学考试试题

二OO六年数据结构与算法分析试题答案2

二OO七年数据结构与算法分析试题答案5

二O一一年数据结构与算法分析试题答案7

二O一二年数据结构与算法分析试题答案8

 

二OO六年数据结构与算法分析试题答案

术语解释:

(略)

选择题:

1~5:

CDCDC

简答题:

1

2

第一趟:

68572413

第二趟:

56781234

第三趟:

12345678

3

4

//用邻接表G存储图的顶点信息

InitQueue();//初始化队列为空

EnQueue(elem);//将元素elem入队

DeQueue(elem);//将队头元素退队并赋值给elem

isEmpty();//判断队列是否为空

GetTotalID(i);//获取第i个顶点的入度并存于ID数组中

ID[vexnum];//用于存储各顶点的入度,vexnum为顶点数

InitQueue();

For(inti=0;i!

=vexnum;++i)

GetTotalID(i);//依次获取每个顶点的入度

For(inti=0;i!

=vexnum;++i)

{

If(ID[i]==0)

EnQueue(i);//将入度为0的顶点入队

For(inti=fristadj;i!

=adjnum;++i)

ID[i]-=1;//将该顶点的邻接点的入度数减1

}

While(!

isEmpty())

{

DeQueue(elem);//将队列中各顶点依次退队并赋值给elem

Printf(elem);//输入拓扑排序序列

}

5

A:

11B:

01010C:

0111D:

00E:

011111F:

10G:

0100H:

0101

应用及编程题

1

unsignedintisBallanced(char*string)

{

charbrace;

for(ihnti=0;i!

=strlen(string);++i)

{

if(string[i]=='{'||string[i]=='['||string[i]=='(')

push(string[i]);

switch(string[i])

{

brace=pop();

case')':

if(brace!

='(')

return0;

break;

case']':

if(brace!

='[')

return0;

break;

case'}':

if(brace!

='{')

return0;

break;

}

if(isEmpty())

return1;

else

return0;

}

}

该算法的时间复杂度为O(n),空间复杂度为O(n);

2

intInOrderTraverse(bitree*t)

{

Staticinttotal=0;

InOrderTraverse(t->lchild);

if(t->data>=x1&&t->data<=x2)

++total;

if(t->data>x2)

returntotal;

InOrderTraverse(t->rchild);

}

该算法为中序遍历,时间复杂度为O(n)

 

二OO七年数据结构与算法分析试题答案

术语解释:

选择题:

1~5:

BCDCD

简答题:

1

2

由邻接矩阵可得该图为:

顶点

I=1

I=2

I=3

I=4

I=5

I=6

V2

10

V3

50

50

50

V4

50

30

V5

50

40

V6

100

90

Vj

V1

V1,V2

V1,V2,V4

V1,V3

V1,V2,V4,V5

V1,V2,V4,V5,V6

3

设N=2K,T(N)=T(N/2)+N

即T(2K)=T(2K-1)+2K=T(2K-2)+2K-1+2K=……=T(20)+2K+2K-1+2K-2+……=2K+1-1=2*2logn-1=2n-1

所以时间复杂度为O(2n-1)

4

voidInsertSort(intlength)

{

for(inti=1;i!

=length;++i)

{

inttemp=num[i],j;

for(j=i;j>0&&temp

num[j]=num[j-1];

num[j]=temp;

}

}

第一趟:

165432第二趟:

126543第三趟:

123654第四趟:

123465第五趟:

123456

5

应用编程题:

1

voidDelete(int*A,intlength)

{

for(inti=1;i!

=length;++i)

{

for(intj=i+1;j!

=length;++j)

{

if(A[i]==A[j])

for(intk=j+1;j!

=length;++k)

A[k-1]=A[k];

}

}

}

该算法的时间复杂度为O(n3)

voidDelete(int*A,intlength)

{

inti=0,j=0;

for(;i!

=length;++i)

{

if(A[j]!

=A[i])

{

A[j+1]=A[i];

++j;

}

}

length=j;

}

 

二O一一年数据结构与算法分析试题答案

术语解释:

(略)

选择题:

1~5:

ABDCC

简答题:

1

#defineSize100

intstack[Size]={0};

inttop1=0,top2=Size-1;

voidpush(inttop,intelem)

{

if(top1>=top2)

{

cout<<"StackOverFlow!

"<

return;

}

switch(top)

{

casetop1:

stack[top]=elem;

++top1;

break;

casetop2:

stack[top]=elem;

++top2;

break;

}

return;

}

voidpop(inttop,intelem)

{

if(top1<0||top2>=Size)

{

cout<<"StackOverFlow!

"<

return;

}

switch(top)

{

casetop1:

elem=stack[top];

--top1;

break;

casetop2:

elem=stack[top];

++top2;

break;

}

return;

}

2

3

Func

(1):

1

Func

(2):

141

Func(3):

191

Func(5):

14125141

该算法的时间复杂度为O(n)

4

A:

101B:

00C:

111D:

10010E:

110F:

010G:

01111H:

100I:

0110

5

深度优先遍历:

V1V2V4V5V7V8V9V3V6

广度优先遍历:

V1V2V3V4V5V6V7V8V9

应用编程题:

1

intPartition(intlow,inthigh)

{

while(low

{

while(num[low]<0)low++;

while(num[high]>0)high--;

if(low

{

inttemp=num[low];

num[low]=num[high];

num[high]=temp;

}

}

return0;

}

2

intsum(bitree*t)

{

staticinttotal;

if(t==NULL)

return0;

if(t->data>0)

total+=t->data;

sum(t->lchild);

sum(t->rchild);

}

 

二O一二年数据结构与算法分析试题答案

术语解释:

(略)

选择题:

1~5:

DBADA

简答题:

1

2

函数调用过程如下:

3

模式串的next值:

01112

4

深度优先遍历:

V1V2V3V6V4V5V7

5

A:

0010B:

1101C:

11001D:

111E:

000F:

0011G:

10H:

01I:

110000J:

11001

算法题

1

intisSum(int*a,intn,intx)

{

inti=0,j=n-1;

while(i

{

if(a[i]+a[j]==x)

return0;

if(a[i]+a[j]

i++;

if(a[i]+a[j]>x)

j--;

}

return-1;

}

该算法的时间复杂度为O(n)

2

intcountHeight(BiTreeNode*root)

{

if(!

root->left&&!

root->right)

return0;

intlHeight=countHeight(root->left);

intrHeight=countheight(root->rchild);

returnlHeight>rHeight?

lHeight+1:

rHeight+1;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2