关于#c语言#的问题,请各位专家解答!

创建由头结点的单链表,并统计单链表中节点个数,求出节点值最大的节点,并求出所有节点值得和

img

数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633

循环输入整数,判断-1则结束链表创建,否则创建新节点,内容为输入的整数
然后遍历链表,得到最大值和总和

#include <stdio.h>
#include <stdlib.h>
 
typedef struct _Node
{
    int data;
    struct _Node *next;
}Node;

void maxandsum(Node *L,int *sum,int *max)
{
    *max = 0;
    *sum = 0;
    Node *p = L->next;
    while(p != NULL)
    {
        *sum += p->data;
        if(p->data > *max)
            *max = p->data;
        p = p->next;
    }
}

Node * createLink()
{
    Node *L = (Node*)malloc(sizeof(Node));
    Node *p = L,*q;
    int data;
    scanf("%d",&data);
    while(data != -1)
    {
        q = (Node*)malloc(sizeof(Node));
        q->data = data;
        q->next = NULL;
        p->next = q;
        p = p->next;
        scanf("%d",&data);
    }
    return L;
}

int main()
{
    int sum=0,max=0;
    Node *L = createLink();
    maxandsum(L,&sum,&max);
    printf("总和:%d,最大值:%d",sum,max);
}