如何初始化c語言靜態(tài)鏈表

小樊
82
2024-09-08 22:54:10
欄目: 編程語言

在C語言中,初始化一個(gè)靜態(tài)鏈表需要定義一個(gè)結(jié)構(gòu)體來表示鏈表節(jié)點(diǎn),然后創(chuàng)建一個(gè)指向該結(jié)構(gòu)體的指針變量作為鏈表頭

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

// 定義鏈表節(jié)點(diǎn)結(jié)構(gòu)體
typedef struct Node {
    int data; // 節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)
    struct Node* next; // 指向下一個(gè)節(jié)點(diǎn)的指針
} Node;

// 初始化靜態(tài)鏈表
Node* init_list() {
    Node* head = NULL; // 初始化鏈表頭為NULL
    return head;
}

// 向鏈表中添加元素
void add_element(Node** head, int data) {
    Node* new_node = (Node*) malloc(sizeof(Node)); // 創(chuàng)建新節(jié)點(diǎn)
    new_node->data = data; // 設(shè)置新節(jié)點(diǎn)的數(shù)據(jù)
    new_node->next = *head; // 將新節(jié)點(diǎn)的next指針指向原鏈表頭
    *head = new_node; // 更新鏈表頭為新節(jié)點(diǎn)
}

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

int main() {
    Node* list = init_list(); // 初始化鏈表

    add_element(&list, 10); // 向鏈表中添加元素
    add_element(&list, 20);
    add_element(&list, 30);

    print_list(list); // 打印鏈表

    // 釋放鏈表內(nèi)存(省略)

    return 0;
}

這個(gè)例子展示了如何初始化一個(gè)靜態(tài)鏈表、向鏈表中添加元素以及打印鏈表。注意,這里沒有包含釋放鏈表內(nèi)存的代碼,實(shí)際使用時(shí)需要在適當(dāng)?shù)奈恢锰砑俞尫艃?nèi)存的操作。

0