安徽大学《数据结构》2020-2021学年期末试卷.docxVIP

  • 0
  • 0
  • 约3.01千字
  • 约 10页
  • 2026-01-21 发布于江西
  • 举报

安徽大学《数据结构》2020-2021学年期末试卷.docx

安徽大学2020—2021学年第2学期

院/系年级专业姓名学号

答题勿超装订线

------------------------------装---------------------------------------------订----------------------------------------线----------------------------------------

《数据结构》期末考试试卷

(闭卷时间100分钟)

考场登记表序号

一、算法分析题(每题10分,共30分)

1.请仔细阅读如下的算法,分析其算法时间复杂度。

(1)

voidtest1(intn){

inta=100;

intb=50;

while(n0){

n=n/2;

if(an){

a=a/3;

b=b*3;

}else{

a=a*3;

b=b/3;

}

}

}

(2)

voidtest2(intA[n][n],intB[n][n],intC[n][n])

{

题号

总分

得分

阅卷人

得分

inti,j,k;

for(i=0;in;i++){

for(j=0;ji;j++){

C[i][j]=0;

for(k=0;kn;k++){

C[i][j]=C[i][j]+A[i][k]*B[k][j];

第1页共7页

}

}

}

}

2.请仔细阅读下列算法,分析其完成了什么功能。(1)下面算法中L为带头结点的单链表

voidtest3(LinkListL)

{

p=L-next;L-next=NULL;

while(p){

q=p-next;

p-next=L-next;

L-next=p;

p=q;

}

}

(2)下面算法中L为带头结点的有序递增单链表

voidtest4(LinkListL,intmink,intmaxk){ p=L-next;

while(pp-data=mink){

pre=p;

p=p-next;

}

if(p){

while(pp-datamaxk)p=p-next;

q=pre-next;

pre-next=p;

while(q!=p){

s=q-next;

deleteq;

q=s;

}

}

}

3.回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。如下算法判定给定的字符向量是否为回文,请仔细阅读代码并回答问题。

#defineStackSize100//假定预分配的栈空间最多为100个元素typedefcharDataType;//假定栈元素的数据类型为字符

typedefstruct{

DataTypedata[StackSize];

inttop;

}SeqStack;

intIsHuiwen(char*t){//判断t字符向量是否为回文,若是,返回1,否则返回0

SeqStacks;

inti,len;

chartemp;

InitStack(s);

len=strlen(t);//求向量长度

for(i=0;ilen/2;i++)

_____________________________

while(!EmptyStack(s)){//__________________________________ _____________________________

if(temp!=S[i])___________________

elsei++;

}

______________________________

}

(1)请在代码中//后的空格处补充注释,说明该while语句的功能。(2)根据代码的功能,请在4处空白代码处填充合适的代码。

二、简答题(4小题,共40分)

4.假设广义表L=((a,b,c),d,(e,(f,g,(h)))),请回答如下问题。(1)求Head(Tail(Head(Tail(Tail(L)))))的值。

(2)写出使用多次嵌套的Head()和T

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档