c语言 设计一个递归算法

设计一个递归算法求一个数组中的最大元素
设带头结点的线性链表中元素值为非零正整数,
试写出
求线性链表中所有元素之和的递归函数(空表返回0)
求线性链表中所有元素最大值的递归函数(空表返回0)

这哪是一个递归算法,这么多个:
给你设计其中一个:这是递归得到数组a【】的前k个元素的最大值
int max(int a[],int k)
{

if(k==2)return(a[0]>a[1]?a[0]:a[1]);
else return max(a,k-1)>a[k]? max(a,k-1):a[k];
}
可以这样试试看:
#include<stdio.h>
int max(int a[],int k)
{

if(k==2)return(a[0]>a[1]?a[0]:a[1]);
else return max(a,k-1)>a[k]? max(a,k-1):a[k];

}

main()
{ int t, b[]={1,2,3,4,5,6,7,8};
t=max(b,8);
printf("%3d",t); getch();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-02
求最大链表中的最大值的核心代码
p->val=head->val;
if(NULL!=p)
{
if(p->val < p->next->val)
p->val=p->next->val;
p=p->next;
}
else return 0;
相似回答