C语言单链表插入节点代码详解
以下是使用 C 语言实现单链表中插入节点值的代码:
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct Node {
int data;
struct Node* next;
};
// 在链表头部插入节点
void insertAtBeginning(struct Node** head, int value) {
// 创建新节点
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = *head;
// 更新头指针
*head = newNode;
}
// 在链表中间或尾部插入节点
void insertAfter(struct Node* prevNode, int value) {
// 检查给定的前一个节点是否为NULL
if (prevNode == NULL) {
printf('The given previous node cannot be NULL');
return;
}
// 创建新节点
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = prevNode->next;
// 将新节点插入到链表中
prevNode->next = newNode;
}
// 打印链表中的节点值
void printLinkedList(struct Node* node) {
while (node != NULL) {
printf('%d ', node->data);
node = node->next;
}
}
int main() {
// 初始化链表为空
struct Node* head = NULL;
// 在链表头部插入节点
insertAtBeginning(&head, 3);
insertAtBeginning(&head, 2);
insertAtBeginning(&head, 1);
// 打印链表中的节点值
printf('Linked list: ');
printLinkedList(head);
// 在链表中间或尾部插入节点
insertAfter(head->next, 4);
insertAfter(head->next->next, 5);
// 打印链表中的节点值
printf('\nLinked list after insertion: ');
printLinkedList(head);
return 0;
}
运行结果:
Linked list: 1 2 3
Linked list after insertion: 1 2 4 5 3
以上代码实现了在单链表中插入节点值的功能。首先定义了链表节点结构体Node,包含数据域data和指向下一个节点的指针next。然后通过insertAtBeginning函数在链表头部插入节点,通过insertAfter函数在链表中间或尾部插入节点。最后通过printLinkedList函数打印链表中的节点值。在main函数中,首先初始化链表为空,然后调用insertAtBeginning函数在链表头部插入三个节点,并打印链表中的节点值。接着调用insertAfter函数在链表中间或尾部插入两个节点,并再次打印链表中的节点值。
原文地址: https://www.cveoy.top/t/topic/G62 著作权归作者所有。请勿转载和采集!