溫馨提示×

C語言鏈表操作能自定義節(jié)點嗎

小樊
81
2024-11-02 02:57:13
欄目: 編程語言

是的,在C語言中,你可以自定義鏈表的節(jié)點結(jié)構(gòu)

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

// 自定義節(jié)點結(jié)構(gòu)
typedef struct Node {
    int data; // 數(shù)據(jù)域,用于存儲數(shù)據(jù)
    struct Node* next; // 指針域,用于指向下一個節(jié)點
} Node;

// 創(chuàng)建新節(jié)點的函數(shù)
Node* create_node(int data) {
    Node* new_node = (Node*) malloc(sizeof(Node));
    new_node->data = data;
    new_node->next = NULL;
    return new_node;
}

// 向鏈表中添加節(jié)點的函數(shù)
void add_node(Node** head, int data) {
    Node* new_node = create_node(data);
    if (*head == NULL) {
        *head = new_node;
    } else {
        Node* current = *head;
        while (current->next != NULL) {
            current = current->next;
        }
        current->next = new_node;
    }
}

// 打印鏈表的函數(shù)
void print_list(Node* head) {
    Node* current = head;
    while (current != NULL) {
        printf("%d -> ", current->data);
        current = current->next;
    }
    printf("NULL\n");
}

int main() {
    Node* head = NULL;

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

    print_list(head);

    return 0;
}

在這個示例中,我們定義了一個名為Node的結(jié)構(gòu)體,它包含一個整數(shù)數(shù)據(jù)域data和一個指向下一個節(jié)點的指針域next。我們還創(chuàng)建了幾個用于操作鏈表的函數(shù),如create_node、add_nodeprint_list。在main函數(shù)中,我們創(chuàng)建了一個空鏈表并向其中添加了一些節(jié)點,然后打印了鏈表。

0