先采用尾插法建立一个单链表,然后通过一趟遍历确定单链表中元素值最大的结点并输出该结点的数据值。需要c语言代码。
时间: 2024-03-11 18:48:16 浏览: 68
假设单链表的结点类型为Node,包含一个数据域data和一个指向下一个结点的指针next,则代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
int main() {
int n, x;
Node *head, *tail, *p, *max;
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;
}
}
max = head;
p = head;
while (p != NULL) {
if (p->data > max->data) {
max = p;
}
p = p->next;
}
printf("单链表中元素值最大的结点的数据值为:%d\n", max->data);
return 0;
}
```
该程序先通过尾插法建立一个单链表,然后遍历单链表并记录元素值最大的结点,最后输出该结点的数据值。
阅读全文