输入若干个不超过100的整数,建立单链表,然后通过一趟遍历在单链表中确定值最小的结点。输出该结点的值
时间: 2024-04-29 13:24:00 浏览: 158
算法步骤:
1. 定义结点结构体,包含数据域和指针域。
2. 读入若干个整数,创建单链表。
3. 遍历单链表,记录当前最小值和对应的结点。
4. 输出最小值。
代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
int main() {
int n;
scanf("%d", &n);
// 创建头结点
Node *head = (Node *) malloc(sizeof(Node));
head->next = NULL;
// 读入数据,创建单链表
Node *p = head;
for (int i = 0; i < n; i++) {
int x;
scanf("%d", &x);
Node *q = (Node *) malloc(sizeof(Node));
q->data = x;
q->next = NULL;
p->next = q;
p = q;
}
// 遍历单链表,找到值最小的结点
int min_val = head->next->data; // 初始值为第一个结点的值
Node *min_node = head->next;
p = head->next->next;
while (p != NULL) {
if (p->data < min_val) {
min_val = p->data;
min_node = p;
}
p = p->next;
}
// 输出值最小的结点的值
printf("%d\n", min_node->data);
// 释放内存
p = head->next;
while (p != NULL) {
Node *q = p;
p = p->next;
free(q);
}
free(head);
return 0;
}
```
阅读全文