已知f为单链表的表头指针, 链表中存储的都是整型数据,试写出实现下列运算的递归算法(C语言): ① 求链表中的最大整数; ② 求链表的结点个数; ③ 求所有整数的平均值
时间: 2023-06-10 18:08:53 浏览: 343
已知head为单链表的表头指针,链表中存储的都是整形数据,实现下列运算的递归算法
4星 · 用户满意度95%
① 求链表中的最大整数的递归算法实现:
```c
int findMax(Node* head) {
if (head == NULL) {
return INT_MIN;
} else {
int max = findMax(head->next);
return head->data > max ? head->data : max;
}
}
```
② 求链表的结点个数的递归算法实现:
```c
int countNodes(Node* head) {
if (head == NULL) {
return 0;
} else {
return 1 + countNodes(head->next);
}
}
```
③ 求所有整数的平均值的递归算法实现:
```c
float findAverage(Node* head, int count) {
if (head == NULL) {
return 0;
} else {
return (head->data + (count - 1) * findAverage(head->next, count)) / count;
}
}
//调用时需传入链表结点个数
```
阅读全文