利用c++数据结构,完成sum函数,计算单链表中所有元素的和
时间: 2024-09-19 12:16:56 浏览: 59
数据结构C++ 线性表——顺序表和单链表基本操作(含代码和注释).docx
5星 · 资源好评率100%
在C++中,要利用数据结构(如单链表)来计算所有元素的和,首先需要定义一个节点(Node)类,包含整数值(value)和指向下一个节点的指针(next)。然后创建一个辅助函数来遍历链表并累加每个节点的值,最后在主函数中计算总和。
下面是一个简单的单链表和sum函数的实现示例:
```cpp
#include <iostream>
// 定义链表节点
struct ListNode {
int val; // 节点值
ListNode* next; // 指向下一个节点的指针
ListNode(int x) : val(x), next(NULL) {} // 构造函数
};
// 定义sum函数,用于计算链表中所有元素的和
int sum(ListNode* head) {
if (head == nullptr) { // 链表为空,返回0
return 0;
}
int sum = head->val; // 初始化总和为头节点的值
ListNode* current = head->next; // 当前节点指针
while (current != nullptr) { // 遍历整个链表
sum += current->val; // 累加当前节点的值
current = current->next; // 移动到下一个节点
}
return sum; // 返回链表的总和
}
// 测试sum函数
int main() {
// 创建一个链表示例
ListNode* list = new ListNode(1);
list->next = new ListNode(2);
list->next->next = new ListNode(3);
list->next->next->next = new ListNode(4);
std::cout << "The sum of the linked list is: " << sum(list) << std::endl;
delete list; // 清理内存
return 0;
}
```
在这个例子中,`sum`函数接受链表的头节点作为参数,通过迭代的方式遍历链表并累加所有节点的值。当链表遍历完后,函数返回总和。
阅读全文