#include "stdio.h"
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
void dellink(struct node *h);
struct node *createlink(int k);
int sum(struct node *h);
main() {
struct node *p, *head = NULL;
int d, s;
scanf("%d", &d);
head = createlink(d); // 创建链表
s = sum(head); // 求和
printf("%d\n", s);
dellink(head); // 删除链表
}
struct node *createlink(int k) {
struct node *head = NULL, *p, *q;
int i;
for(i = 0; i < k; i++) {
p = (struct node *)malloc(sizeof(struct node));
scanf("%d", &p->data);
p->next = NULL;
if(head == NULL) {
head = p;
q = p;
} else {
q->next = p;
q = p;
}
}
return head;
}
int sum(struct node *h) {
int s = 0;
struct node *p = h;
while (p!= NULL) {
s += p->data;
p = p->next;
}
return s;
}
void dellink(struct node *h) {
struct node *q;
while (h!= NULL) {
q = h;
h = h->next;
free(q);
}
}
求链表中所有节点的和
最新推荐文章于 2024-11-11 20:46:27 发布