资源描述:
《广工anyview数据结构答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构习题集第1章答案◆1.16②试写一算法,如果三个整数X,Y和Z的值不是依次非递增的,则通过交换,令其为非递增。要求实现下列函数:voidDescend(int&x,int&y,int&z);/*按从大到小顺序返回x,y和z的值*/voidDescend(int&x,int&y,int&z)/*按从大到小顺序返回x,y和z的值*/{intt;if(x<=y){t=x;x=y;y=t;}if(y<=z){t=y;y=z;z=t;}if(x<=y){t=x;x=y;y=t;}/*把x,y,z进
2、行从大到小排序*/printf("%d,%d,%d",x,y,z);}◆1.17③已知k阶裴波那契序列的定义为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均以值调用的形式在函数参数表中出现。要求实现下列函数:StatusFibonacci(intk,intm,int&f);/*如果能求得k阶斐波那契序列的第m项的值f,则返回OK;*//*否则(比如,参数k和m不合理)
3、返回ERROR*/StatusFibonacci(intk,intm,int&f)/*求k阶斐波那契序列的第m项的值f*/{intt[60],sum,i,j;if(k<2
4、
5、m<0)returnERROR;/*参数k和m不合理*/if(m6、=t[m];101}returnOK;}◆1.18③假设有A、B、C、D、E五个高等院校进行田径对抗赛,各院校的单项成绩均以存入计算机并构成一张表,表中每一行的形式为:项目名称性别校名成绩得分编写算法,处理上述表格,以统计各院校的男、女总分和团体总分,并输出。要求实现下列函数:voidScores(ResultType*result,ScoreType*score);/*求各校的男、女总分和团体总分,并依次存入数组score*//*假设比赛结果已经储存在result[]数组中,*//*并以特殊记
7、录{"",male,'',"",0}(域scorce=0)*//*表示结束*/相关数据类型定义如下:typedefenum{female,male}Sex;typedefstruct{char*sport;//项目名称Sexgender;//性别(女:female;男:male)charschoolname;//校名为'A','B','C','D'或'E'char*result;//成绩intscore;//得分(7,5,4,3,2或1)}ResultType;typedefstruct{int
8、malescore;//男子总分intfemalescore;//女子总分inttotalscore;//男女团体总分}ScoreType;voidScores(ResultType*result,ScoreType*score)/*求各校的男、女总分和团体总分,并依次存入数组score*//*假设比赛结果已经储存在result[]数组中,*//*并以特殊记录{"",male,'',"",0}(域scorce=0)*//*表示结束*/{//ScoreTypescore;inti=0;while(
9、result[i].sport!=NULL){switch(result[i].schoolname)/*使用switch语句记录各院校的成绩*/{101case'A':score[0].totalscore+=result[i].score;if(result[i].gender==male)score[0].malescore+=result[i].score;elsescore[0].femalescore+=result[i].score;break;case'B':score[1].t
10、otalscore+=result[i].score;if(result[i].gender==male)score[1].malescore+=result[i].score;elsescore[1].femalescore+=result[i].score;break;case'C':score[2].totalscore+=result[i].score;if(result[i].gender==male)score[2].malescore+=result[i].score;elsesc