用C语言创建一个链表,存放并输出5个数字。
时间: 2024-02-27 22:54:07 浏览: 69
删除链表中重复元素(c语言版)
4星 · 用户满意度95%
好的,以下是使用 C 语言创建一个链表,存放并输出5个数字的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct ListNode {
int val;
struct ListNode* next;
};
int main() {
// 创建头节点和指针
struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* cur = head;
// 循环添加5个节点
for (int i = 0; i < 5; i++) {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
// 创建新节点
struct ListNode* new_node = (struct ListNode*)malloc(sizeof(struct ListNode));
new_node->val = num;
new_node->next = NULL;
// 将新节点连接到链表
cur->next = new_node;
cur = cur->next;
}
// 从头节点开始遍历链表,输出每个节点的值
cur = head->next;
while (cur) {
printf("%d ", cur->val);
cur = cur->next;
}
// 释放链表节点内存空间
cur = head;
while (cur) {
struct ListNode* temp = cur;
cur = cur->next;
free(temp);
}
return 0;
}
```
首先,我们定义了链表节点的结构体 `ListNode`,包含一个整型值 `val` 和一个指向下一个节点的指针 `next`。然后,我们使用 `malloc` 函数动态分配了一个头节点 `head` 的内存空间,并将其作为链表的起始节点。
接着,我们使用一个循环来添加5个节点。在循环内部,我们先通过 `scanf` 函数获取用户输入的数字,并创建一个新的节点 `new_node`。然后,我们将新节点连接到链表的末尾,更新 `cur` 指针。
最后,我们使用另一个循环遍历链表,并输出每个节点的值。注意,我们要从头节点的下一个节点开始遍历,因为头节点本身不存储数据。
最后,我们使用一个循环遍历链表,释放每个节点的内存空间,防止内存泄漏。
希望这个示例可以帮助您理解如何使用 C 语言创建链表并存储和输出数据。
阅读全文