创建由头结点的单链表,并统计单链表中节点个数,求出节点值最大的节点,并求出所有节点值得和
数据结构对单链表进行数据排序 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);
}