以下是使用 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函数在链表中间或尾部插入两个节点,并再次打印链表中的节点值。

C语言单链表插入节点代码详解

原文地址: https://www.cveoy.top/t/topic/G62 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录