C语言单链表入门:向链表插入数据详解
下面是用 C 语言编写的向单链表填入数据的代码示例,并辅以详细解释,帮助新手理解单链表的基本操作。
#include <stdio.h>
#include <stdlib.h>
// 定义单链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 向单链表插入数据
void insertData(Node** head, int data) {
// 创建新节点
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
// 如果链表为空,则将新节点作为头节点
if (*head == NULL) {
*head = newNode;
return;
}
// 遍历链表,找到尾节点
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
// 将新节点插入到尾节点后
current->next = newNode;
}
// 打印单链表
void printList(Node* head) {
Node* current = head;
while (current != NULL) {
printf('%d ', current->data);
current = current->next;
}
printf('\n');
}
int main() {
Node* head = NULL;
// 向单链表插入数据
insertData(&head, 10);
insertData(&head, 20);
insertData(&head, 30);
// 打印单链表
printList(head);
return 0;
}
代码解析:
-
定义单链表节点结构体
Node:data: 存储节点数据,这里使用整型int。next: 指向下一个节点的指针,构成链表的链式结构。
-
插入数据函数
insertData:- 接收两个参数:
head: 指向链表头节点的指针的地址。data: 要插入的数据。
- 创建新节点,并将数据存储到新节点中。
- 判断链表是否为空,为空则将新节点作为头节点。
- 如果链表不为空,则遍历链表找到尾节点,并将新节点插入到尾节点的后面。
- 接收两个参数:
-
打印单链表函数
printList:- 接收一个参数:指向链表头节点的指针
head。 - 遍历链表,依次打印每个节点的数据。
- 接收一个参数:指向链表头节点的指针
-
主函数
main:- 创建一个空链表头指针
head。 - 调用
insertData函数向链表中插入数据 10、20 和 30。 - 调用
printList函数打印链表中的数据。
- 创建一个空链表头指针
总结:
这段代码示例展示了用 C 语言实现向单链表插入数据的基本操作。通过理解代码结构和逻辑,你可以更深入地理解单链表的数据结构,并为后续学习更复杂的操作打下基础。
原文地址: https://www.cveoy.top/t/topic/Hez 著作权归作者所有。请勿转载和采集!