当前位置: 首页 > >

java单链表 递归求*均值_递归求解单链表中的*均值

发布时间:

描述


利用单链表表示一个整数序列,利用递归的方法计算单链表中各个结点的*均值。


输入


多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。


输出


对于每组数据分别输出一行,对应链表中的各个结点的*均值,输出保留两位小数。


输入样例 1


4


1 2 3 4


6


1 1 1 1 1 1


0


输出样例 1


2.50


1.00


#include


#include


using namespace std;


#define MAXSIZE 10000


typedef struct LNode


{


double data;


struct LNode *next;


}LNode,*LinkList;


void InitList(LinkList &L)


{


L=new LNode;


L->next=NULL;


return;


}


void CreateList_R(LinkList &L,int n)


{


LinkList r,p;int i=0;


L=new LNode;


L->next=NULL;


r=L;


//int n;


//cin>>n;


while(1)


{


p=new LNode;


cin>>p->data;


p->next=NULL;


r->next=p;


r=p;


i++;


if(i==n) break;


}


return;


}


int ListLength(LinkList L)


{


LinkList p;


p=L->next; //p指向第一个结点


int i=0;


while(p){//遍历单链表,统*岬闶


i++;


cout

p=p->next;


}


return i;


}


double Aver(LinkList p,double sum,int i)


{


if(p->next!=NULL)


{


sum = sum + p->data;


return Aver(p->next, sum, i+1);


}


else


{


double aver = (sum + p->data)/(i+1);


return aver;


}


}


int main()


{


LinkList L;int n;int i=0;double sum=0;


InitList(L);


while(1)


{


cin>>n;


if(n==0)break;


CreateList_R(L,n);


cout

}


return 0;


}







相关资源:使用JAVA数组接受用户输入学生成绩*均值的源代码



友情链接: 时尚网 总结汇报 幼儿教育 小学教育 初中学习资料网