溫馨提示×

c語言如何創(chuàng)建一個鏈表

小億
93
2024-08-01 18:36:12
欄目: 編程語言

在C語言中,創(chuàng)建一個鏈表需要定義一個結(jié)構(gòu)體來表示鏈表的節(jié)點,然后定義一些函數(shù)來對鏈表進行操作。

以下是一個簡單的例子來創(chuàng)建一個鏈表:

#include <stdio.h>
#include <stdlib.h>

// 定義鏈表節(jié)點的結(jié)構(gòu)體
struct Node {
    int data;
    struct Node* next;
};

// 創(chuàng)建一個新節(jié)點
struct Node* createNode(int data) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    if (newNode == NULL) {
        printf("Memory allocation failed");
        exit(1);
    }
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

// 插入新節(jié)點到鏈表的末尾
void insertNode(struct Node** head, int data) {
    struct Node* newNode = createNode(data);
    if (*head == NULL) {
        *head = newNode;
        return;
    }
    struct Node* current = *head;
    while (current->next != NULL) {
        current = current->next;
    }
    current->next = newNode;
}

// 打印鏈表
void printList(struct Node* head) {
    while (head != NULL) {
        printf("%d -> ", head->data);
        head = head->next;
    }
    printf("NULL\n");
}

int main() {
    struct Node* head = NULL;

    insertNode(&head, 1);
    insertNode(&head, 2);
    insertNode(&head, 3);

    printList(head);

    return 0;
}

在這個例子中,首先定義了一個表示鏈表節(jié)點的結(jié)構(gòu)體Node,然后定義了一個createNode函數(shù)來創(chuàng)建一個新的節(jié)點,一個insertNode函數(shù)來插入新節(jié)點到鏈表的末尾,以及一個printList函數(shù)來打印鏈表。

main函數(shù)中,首先創(chuàng)建一個空鏈表,然后插入三個節(jié)點,并最后打印出整個鏈表的內(nèi)容。

0