数据结构习题集答案解析清华大学版

(2)

?x??xii?0nnn?1?1/?x?1?

?

?x?1,n?0?

(3)

?2i?1ni?1?2n?1

?n?1? ?n?1?

(4)

2??2i?1?n ?i?1

1、16 试写一算法,自大至小依次输出顺序读入得三个整数X,Y与Z得值

解:

int max3(int x,int y,int z) { }

1、17 已知k阶斐波那契序列得定义为

if(x>y)

if(x>z) return x; else return z; if(y>z) return y; else return z;

else

f0?0,f1?0,…,fk?2?0,fk?1?1; fn?fn?1?fn?2???fn?k,n?k,k?1,?

试编写求k阶斐波那契序列得第m项值得函数算法,k与m均以值调用得形式在函数参数表中出现。

解:k>0为阶数,n为数列得第n项 int Fibonacci(int k,int n) {

if(k<1) exit(OVERFLOW); int *p,x; p=new int[k+1]; if(!p) exit(OVERFLOW); int i,j;

for(i=0;i

}

for(i=k+1;i

return p[k];

x=p[0];

for(j=0;j

}

1、18 假设有A,B,C,D,E五个高等院校进行田径对抗赛,各院校得单项成绩均已存入计算机,并构成一张表,表中每一行得形式为牽駘珐猻鉤宝潷。 项目名称 解:

typedef enum{A,B,C,D,E} SchoolName; typedef enum{Female,Male} SexType; typedef struct{

char event[3]; //项目 SexType sex; SchoolName school; int score;

性别 校名 成绩 得分 编写算法,处理上述表格,以统计各院校得男、女总分与团体总分,并输出。

} Component; typedef struct{

int MaleSum;

//男团总分

int FemaleSum; //女团总分 int TotalSum; //团体总分

} Sum;

Sum SumScore(SchoolName sn,Component a[],int n) { }

1、19 试编写算法,计算i!*2得值并存入数组a[0、、arrsize-1]得第i-1个分量中(i=1,2,…,n)。假设计算机中允许得整数最大值为maxint,则当n>arrsize或对某个kk?1?k?n?,使k!?2iSum temp; temp、MaleSum=0; temp、FemaleSum=0; temp、TotalSum=0; int i;

for(i=0;i

temp、TotalSum=temp、MaleSum+temp、FemaleSum; return temp;

if(a[i]、sch

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4