求一个链表的所有元素的平均值
typedef struct { int num;
float ave;
}Back;
typedef struct node{ float data;
struct node *next;
} Node;
Back *aveage(Node *head)
{ Back *p,*q;
p=(Back *)malloc(sizeof(Back));
if (head==NULL)
{ p->num=0;
p->ave=0; }
else
{ (1) ;
p->num=q->num+1;
(2) ; }
retuen p;
}
main()
{ Node *h; Back *p;
h=create(); /*建立以h为头指针的链表*/
if (h==NULL) printf(“没有元素”);
else { p=aveage(h);
printf(“链表元素的均值为:o”,p->ave);
}
}
答案:(1)q=aveage(head->next)
(2)p->ave=(head->data+q->ave*q->num)/p->num
希尔排序
已知待排序序列data[n];希尔排序的增量序列为d[m],其中d[]序列降序排列,且d[m-1]=1。其方法是对序列进行m趟排序,在第i趟排序中,按增量d把整个序列分成d个子序列,并按直接插入排序的方法对每个子序列进行排序。
希尔排序的程序为:
void shellsort(int *data,int *d,int n,int m)
{ int i,j;
for (i=0;i for (j=0; (1) ;j++)
shell( (2) );
}
void shell(int *data,int d,int num,int n)
{ int i,j,k,temp;
for (i=1; (3) ;i++)
{ j=0;
temp=data[j+i*d];
while ((j j++;
for (k=j;k data[k+1]=data[k];
(5) ;
(6) }
}
答案:(1)j (2)data,d,j,n
(3)num+i*d (4)data[j+i*d] (5)data[j]=temp
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|