链表是一种常见的数据结构,用于存储和管理数据。在C语言中,链表是通过指针来实现的。

链表由节点组成,每个节点包含两部分:数据和指针。数据部分用于存储实际数据,指针部分用于指向下一个节点。链表的第一个节点称为头节点,最后一个节点称为尾节点,尾节点的指针部分通常指向NULL。

以下是链表相关的常用函数:

  1. 创建节点函数:
struct Node {
    int data;
    struct Node* next;
};

struct Node* createNode(int data) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}
  1. 插入节点函数:
void insertNode(struct Node** head, int data) {
    struct Node* newNode = createNode(data);
    if (*head == NULL) {
        *head = newNode;
    } else {
        struct Node* temp = *head;
        while (temp->next != NULL) {
            temp = temp->next;
        }
        temp->next = newNode;
    }
}
  1. 删除节点函数:
void deleteNode(struct Node** head, int data) {
    if (*head == NULL) {
        return;
    }
    struct Node* temp = *head;
    struct Node* prev = NULL;
    if (temp != NULL && temp->data == data) {
        *head = temp->next;
        free(temp);
        return;
    }
    while (temp != NULL && temp->data != data) {
        prev = temp;
        temp = temp->next;
    }
    if (temp == NULL) {
        return;
    }
    prev->next = temp->next;
    free(temp);
}
  1. 查找节点函数:
struct Node* searchNode(struct Node* head, int data) {
    struct Node* temp = head;
    while (temp != NULL) {
        if (temp->data == data) {
            return temp;
        }
        temp = temp->next;
    }
    return NULL;
}
  1. 打印链表函数:
void printList(struct Node* head) {
    struct Node* temp = head;
    while (temp != NULL) {
        printf("%d ", temp->data);
        temp = temp->next;
    }
    printf("\n");
}

这些函数可以帮助你创建、插入、删除、查找和打印链表中的节点。你可以根据需要对这些函数进行修改和扩展

c语言中的链表及其相关的函数

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

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