文档介绍:清华大学严蔚敏数据结构习题集(C版)答案
第一章绪论
void print_descending(int x,int y,int z)//按从大到小顺序输出三个数
{
  scanf("%d,%d,%d",&x,&y,&z);
  if(x<y) x<->y; //<->为表示交换的双目运算符,以下同
  if(y<z) y<->z;
  if(x<y) x<->y; //冒泡排序
  printf("%d %d %d",x,y,z);
}//print_descending
Status fib(int k,int m,int &f)//求k阶斐波那契序列的第m项的值f
{
  int tempd;
  if(k<2||m<0) return ERROR;
  if(m<k-1) f=0;
  else if (m==k-1) f=1;
  else
  {
    for(i=0;i<=k-2;i++) temp=0;
    temp[k-1]=1; //初始化
    for(i=k;i<=m;i++) //求出序列第k至第m个元素的值
    {
      sum=0;
      for(j=i-k;j<i;j++) sum+=temp[j];
      temp=sum;
    }
    f=temp[m];
  }
  return OK;
}//fib
分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程(大多数人都会首先想到递归方法),则时间复杂度将高达O(k^m).
typedef struct{
                    char *sport;