已知L为带头结点的单链表,链表中存储的是整型数据。编写出函数Sum(L),实现链表L中所有结点的数值之和。用C语言设计
时间: 2024-11-09 20:23:36 浏览: 43
链表-使用C语言实现带头结点的单链表.zip
在C语言中,你可以通过遍历链表并累加每个节点的值来计算链表中所有节点的和。这里是一个简单的函数实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 函数声明
int Sum(Node* L);
// 遍历链表并求和
int Sum(Node* L) {
if (L == NULL) { // 如果链表为空,返回0
return 0;
}
int sum = L->data; // 初始化总和为头节点的值
Node* temp = L->next; // 指针指向下一个节点
while (temp != NULL) {
sum += temp->data; // 累加当前节点的值
temp = temp->next; // 移动到下一个节点
}
return sum; // 返回链表的总和
}
// 示例:创建链表并测试Sum函数
void createList(Node** head) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = 1;
newNode->next = NULL;
*head = newNode;
// 添加更多节点...
// ...
}
int main() {
Node* head = NULL;
createList(&head);
int total = Sum(head);
printf("链表中所有节点的数值之和为:%d\n", total);
return 0;
}
```
在这个例子中,`createList`函数用于构建链表,`main`函数中创建了一个链表并调用了`Sum`函数来计算其和。注意在实际应用中你需要添加更多的节点生成链表。
阅读全文