先采用尾插法建立一个单链表,然后通过一趟遍历确定单链表中元素值最大的结点并输出该结点的数据值。需要用c语言写一个函数实现该功能。
时间: 2024-03-11 19:48:19 浏览: 72
假设单链表的结点类型为Node,包含一个数据域data和一个指向下一个结点的指针next,则代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
int findMax(Node *head) {
Node *p = head;
Node *max = head;
while (p != NULL) {
if (p->data > max->data) {
max = p;
}
p = p->next;
}
return max->data;
}
int main() {
int n, x;
Node *head, *tail, *p;
printf("请输入单链表中结点的个数:");
scanf("%d", &n);
head = NULL;
tail = NULL;
printf("请输入单链表中各个结点的值:");
for (int i = 0; i < n; i++) {
scanf("%d", &x);
p = (Node *)malloc(sizeof(Node));
p->data = x;
p->next = NULL;
if (tail == NULL) {
head = p;
tail = p;
} else {
tail->next = p;
tail = p;
}
}
printf("单链表中元素值最大的结点的数据值为:%d\n", findMax(head));
return 0;
}
```
该程序通过定义一个函数实现了遍历单链表并返回元素值最大的结点的数据值,主函数中先通过尾插法建立单链表,然后调用该函数输出最大值。
阅读全文