中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c語言怎么編寫一個簡單的單鏈表

小億
84
2024-01-13 14:12:32
欄目: 編程語言

以下是一個簡單的單鏈表的C語言實現:

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

struct ListNode {
    int val;
    struct ListNode* next;
};

// 創建鏈表節點
struct ListNode* createNode(int value) {
    struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
    newNode->val = value;
    newNode->next = NULL;
    return newNode;
}

// 插入節點到鏈表尾部
void insert(struct ListNode** head, int value) {
    struct ListNode* newNode = createNode(value);
    if (*head == NULL) {
        *head = newNode;
    } else {
        struct ListNode* cur = *head;
        while (cur->next != NULL) {
            cur = cur->next;
        }
        cur->next = newNode;
    }
}

// 刪除指定值的節點
void removeNode(struct ListNode** head, int value) {
    struct ListNode* cur = *head;
    struct ListNode* prev = NULL;
    while (cur != NULL) {
        if (cur->val == value) {
            if (prev == NULL) { // 刪除頭節點
                *head = cur->next;
            } else {
                prev->next = cur->next;
            }
            free(cur);
            return;
        }
        prev = cur;
        cur = cur->next;
    }
}

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

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

    // 插入節點
    insert(&head, 1);
    insert(&head, 2);
    insert(&head, 3);

    // 打印鏈表
    printList(head);

    // 刪除節點
    removeNode(&head, 2);

    // 打印鏈表
    printList(head);

    return 0;
}

該代碼實現了一個簡單的單鏈表,包括創建節點、插入節點、刪除節點以及打印鏈表的功能。在main()函數中演示了如何使用這些功能。

0
屏边| 南皮县| 建湖县| 饶阳县| 和硕县| 吴堡县| 南城县| 深水埗区| 南安市| 波密县| 九江县| 太保市| 安阳县| 偏关县| 涡阳县| 电白县| 白水县| 二连浩特市| 呼玛县| 平和县| 怀集县| 顺昌县| 延寿县| 瑞安市| 北宁市| 吴堡县| 方城县| 南丰县| 庄河市| 道真| 沈丘县| 淮安市| 晋州市| 洛南县| 连江县| 成安县| 海丰县| 土默特右旗| 新乐市| 明溪县| 永福县|