问题描述】创建一个单链表,并求其最大值。 【输入形式】从键盘输入若干个整数,以空格分开,-1作为输入结束。 【输出形式】如果存在最大值,则输出;否则输出No answer! 【样例输入】65 12 6 78 5 -1 【样例输出】78c语言
时间: 2023-11-22 07:54:01 浏览: 85
数据结构c语言版单链表的创建和输出
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
int main() {
struct Node* head = NULL;
struct Node* tail = NULL;
int num;
printf("请输入若干个整数,以空格分开,-1作为输入结束:\n");
while (1) {
scanf("%d", &num);
if (num == -1) {
break;
}
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = num;
newNode->next = NULL;
if (head == NULL) {
head = tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
if (head == NULL) {
printf("No answer!\n");
} else {
int max = head->data;
struct Node* p = head->next;
while (p != NULL) {
if (p->data > max) {
max = p->data;
}
p = p->next;
}
printf("最大值为:%d\n", max);
}
return 0;
}
```
首先定义了一个结构体 `Node`,表示链表中的一个节点,包含数据域 `data` 和指针域 `next`。然后通过循环输入若干个整数,创建链表。如果链表为空,则输出 `No answer!`;否则遍历链表,找到最大值并输出。
阅读全文