函数题:单链表结点和
给出单链表类型定义。本题要求实现2个函数,创建单链表并统计所有结点的累加和。
### 函数接口定义:
c++
/* 用数组arr中的arr_size个元素创建单链表,并返回链表的头指针 */
struct Node* build(int* arr, int arr_size);
/* 返回链表中所有结点的累加和 */
int getSum(struct Node* head);
其中 arr 和 arr_size 分别表示指向数组的指针和元素个数。 arr_size 的值不超过10的范围,函数返回创建的单链表的头指针; head 是单链表的头指针,函数须返回 单链表 中所有结点的累加和。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <stdlib.h>
struct Node
{
int data;
struct Node* next;
};
/* 用数组arr中的arr_size个元素创建单链表,并返回链表的头指针 */
struct Node* build(int* arr, int arr_size);
/* 返回链表中所有结点的累加和 */
int getSum(struct Node* head);
int main(int argc, char const *argv[])
{
struct Node* head = NULL;
int arr_size, i, *arr;
scanf("%d", &arr_size);
arr = (int*)malloc(arr_size * sizeof(int));
for (i = 0; i < arr_size; i++)
scanf("%d", &arr[i]);
head = build(arr, arr_size);
for (struct Node* p = head; p != NULL; p = p->next)
printf("%d ", p->data);
printf("\n");
printf("%d\n", getSum(head));
free(arr);
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
3
1 2 3
### 输出样例:
out
1 2 3
6
答案:若无答案欢迎评论
### 函数接口定义:
c++
/* 用数组arr中的arr_size个元素创建单链表,并返回链表的头指针 */
struct Node* build(int* arr, int arr_size);
/* 返回链表中所有结点的累加和 */
int getSum(struct Node* head);
其中 arr 和 arr_size 分别表示指向数组的指针和元素个数。 arr_size 的值不超过10的范围,函数返回创建的单链表的头指针; head 是单链表的头指针,函数须返回 单链表 中所有结点的累加和。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <stdlib.h>
struct Node
{
int data;
struct Node* next;
};
/* 用数组arr中的arr_size个元素创建单链表,并返回链表的头指针 */
struct Node* build(int* arr, int arr_size);
/* 返回链表中所有结点的累加和 */
int getSum(struct Node* head);
int main(int argc, char const *argv[])
{
struct Node* head = NULL;
int arr_size, i, *arr;
scanf("%d", &arr_size);
arr = (int*)malloc(arr_size * sizeof(int));
for (i = 0; i < arr_size; i++)
scanf("%d", &arr[i]);
head = build(arr, arr_size);
for (struct Node* p = head; p != NULL; p = p->next)
printf("%d ", p->data);
printf("\n");
printf("%d\n", getSum(head));
free(arr);
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
3
1 2 3
### 输出样例:
out
1 2 3
6
答案:若无答案欢迎评论