永发信息网

已知head为无头结点单链表的头指针,假设链表中存储的都是整型数据

答案:1  悬赏:10  手机版
解决时间 2021-07-16 21:01
编写含递归算法的程序实现下面的问题:
a、求单链表中的最大整数
b、求单链表中结点个数
c、求所有证书的平均值
最佳答案
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct _list {
int val;
struct _list* next;
} *node, list;


node Insert( node* head, node pos, int val )
{
node tmp;
tmp = ( node )malloc( sizeof( list ) );
tmp->val = val;
tmp->next = pos ? pos->next : *head;
if ( pos ) {
pos->next = tmp;
} else {
*head = tmp;
}
return tmp;
}


node Create( int* beg, int* end )
{
node head, t;
head = t = NULL;
while ( beg != end ) {
t = Insert( &head, t, *beg++ );
}
return head;
}


void Print( node head )
{
while ( head ) {
printf( "%d ", head->val );
head = head->next;
}
putchar( '\n' );
}

void _max( node head, int* max )
{
if ( head ) {
if ( head->val > *max )
*max = head->val;
_max( head->next, max );
}
}
int Max( node head )
{
int max = head->val;
_max( head, &max );
return max;
}

int Count( node head )
{
return head ? 1 + Count( head->next ) : 0;
}

void _sum( node head, double* avg )
{
if ( head ) {
*avg += head->val;
_sum( head->next, avg );
}
}

double Avg( node head )
{
double sum = 0;
_sum( head, &sum );
return sum / Count( head );
}

int main( void )
{
int a[] = { 3,9,2,7,6,1,8,5,0,4 };
node head = Create( a, a + 10 );
Print( head );
printf( "max: %d\n", Max( head ) );
printf( "count: %d\n", Count( head ) );
printf( "avg: %.2f\n", Avg( head ) );
getch();
return 0;
}


运行截图:


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有长年收购芹菜的吗
联通公司的服务
求人帮忙配套炫舞YY
靓号怎么办理
tomcat 配置域名问题
炫舞里面的“心有灵犀”徽章多少级才能获得?
是美男里的如何是好哪里有?我找不到!
DNF广西2的黑光是什么价位?
衣服怎么样才能防止静电
★天龙八部★装备强化时如何才能提高强化率?
小新是怎么死的?
冬天手太冷了,有没有能带着打篮球的手套?
‘相反的’用英语怎么写
女刊上的秋季减肥方法有效吗?
胖人穿Levi's牛仔裤好看吗
推荐资讯
天宇E500安装什么版本的手机QQ比较好?
天龙里的坐骑。
成功业务员有哪些秘诀?
问个价 :69JN随等级DT 伤930+ 命 1370+ 无修
关于母乳喂养
怎么把诺基亚5130屏幕上的时间和中国移动去掉
我想用手机打繁体字。
终极三国37集的结尾曲叫什么
孕妇喝什么牌子的奶最有营养
追加悬赏100求诺基亚5220详细刷机方法
QQ校友怎么点啊
谁给我一个跑跑的装备好的号
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?