06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx

上传人:b****6 文档编号:16226891 上传时间:2022-11-21 格式:DOCX 页数:19 大小:220.69KB
下载 相关 举报
06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx_第1页
第1页 / 共19页
06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx_第2页
第2页 / 共19页
06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx_第3页
第3页 / 共19页
06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx_第4页
第4页 / 共19页
06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx

《06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx》由会员分享,可在线阅读,更多相关《06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

06华中科技大学招收硕士研究生数据结构与算法分析考试试题答案Word下载.docx

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

ID[vexnum];

//用于存储各顶点的入度,vexnum为顶点数

For(inti=0;

i!

=vexnum;

++i)

GetTotalID(i);

//依次获取每个顶点的入度

{

If(ID[i]==0)

EnQueue(i);

//将入度为0的顶点入队

For(inti=fristadj;

=adjnum;

ID[i]-=1;

//将该顶点的邻接点的入度数减1

}

While(!

isEmpty())

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

Printf(elem);

//输入拓扑排序序列

5

A:

11B:

01010C:

0111D:

00E:

011111F:

10G:

0100H:

0101

应用及编程题

unsignedintisBallanced(char*string)

charbrace;

for(ihnti=0;

=strlen(string);

{

if(string[i]=='

{'

||string[i]=='

['

('

push(string[i]);

switch(string[i])

{

brace=pop();

case'

)'

:

if(brace!

='

return0;

break;

]'

}'

}

if(isEmpty())

return1;

else

return0;

}

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

inttotal=0;

intInOrderTraverse(bitree*t)

InOrderTraverse(t->

lchild);

if(t->

data>

=x1)

++total;

x2)

returntotal;

rchild);

returntotal;

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

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

BCDBD

由邻接矩阵可得该图为:

顶点

I=1

I=2

I=3

I=4

I=5

I=6

V2

10

V3

50

V4

30

V5

40

V6

100

90

Vj

V1

V1,V2

V1,V2,V4

V1,V3

V1,V2,V4,V5

V1,V2,V4,V5,V6

设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)

voidInsertSort(int*array,intnum)

inti=num-1,j=1;

while(j!

=i)

array[0]=array[i];

if(array[i]<

array[j])

for(intv=i-1;

v>

=j;

--v)

array[v-1]=array[v];

array[v]=array[0];

++j;

--i;

165432第二趟:

126543第三趟:

123654第四趟:

123465第五趟:

123456

应用编程题:

voidDelete(int*A,intlength)

for(inti=1;

=length;

for(intj=i+1;

j!

++j)

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

for(intk=j+1;

++k)

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

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

voidDelete(int*A,intlength)

inti=0,j=0;

for(;

if(A[j]!

=A[i])

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

length=j;

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

ABDCC

#defineSize100

intstack[Size]={0};

inttop1=0,top2=Size-1;

voidpush(inttop,intelem)

if(top1>

=top2)

cout<

<

"

StackOverFlow!

endl;

return;

switch(top)

casetop1:

stack[top]=elem;

++top1;

break;

casetop2:

++top2;

return;

voidpop(inttop,intelem)

if(top1<

0||top2>

=Size)

elem=stack[top];

--top1;

Func

(1):

1

Func

(2):

141

Func(3):

191

Func(5):

14125141

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

101B:

00C:

111D:

10010E:

110F:

010G:

01111H:

100I:

0110

深度优先遍历:

V1V2V4V5V7V8V9V6V3

广度优先遍历:

V1V2V3V4V5V6V7V8V9

应用编程题:

intQuickSort()

inti=0,j=8;

while(i<

j)

if(a[i]>

0&

&

a[j]<

0)

inttmp=a[i];

a[i]=a[j];

a[j]=tmp;

++i,--j;

if(a[i]<

++i;

if(a[j]>

--j;

intsum(bitree*t)

staticinttotal;

if(t==NULL)

return0;

total+=t->

data;

sum(t->

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

BBADA

函数调用过程如下:

模式串的next值:

011112

V1V2V3V6V4V5V7

0010B:

1101C:

11001D:

111E:

000F:

0011G:

10H:

01I:

110000J:

11001

算法题

intisSum(int*a,intn,intx)

inti=0,j=n-1;

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

if(a[i]+a[j]<

x)

i++;

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

j--;

return-1;

intcountHeight(BiTreeNode*root)

if(!

root->

left&

!

right)

intlHeight=countHeight(root->

left);

intrHeight=countheight(root->

returnlHeight>

rHeight?

lHeight+1:

rHeight+1;

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

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1