91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
仁化县| 洪泽县| 开封市| 博客| 通辽市| 乌兰浩特市| 辽中县| 临海市| 隆化县| 定西市| 邵东县| 元氏县| 贞丰县| 克什克腾旗| 锦州市| 遂川县| 贡嘎县| 乡宁县| 石首市| 称多县| 洮南市| 道孚县| 柏乡县| 喀喇沁旗| 垦利县| 翁源县| 丹江口市| 资阳市| 株洲县| 项城市| 巫溪县| 四会市| 夏邑县| 梨树县| 库尔勒市| 黎城县| 阿拉善盟| 鞍山市| 个旧市| 英山县| 城市|