C语言 数据结构——链表使用示例

该程序展示了如何在C语言中使用链表数据结构。它定义了链表节点结构体,实现了向链表头部插入节点、按值删除节点以及打印链表所有元素的功能。在主函数中,创建了一个链表并进行了一系列操作,包括插入四个节点、打印原始链表,然后删除值为2的节点并再次打印更新后的链表。
摘要由CSDN通过智能技术生成

链表是一种常用的数据结构,可以在运行时动态分配内存空间,非常灵活。以下是一个简单的C语言链表例程:

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

// 链表节点结构体定义
struct Node {
    int data;
    struct Node* next;
};

// 插入节点到链表头部
void insert_node(struct Node** head, int data) {
    struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
    new_node->data = data;
    new_node->next = *head;
    *head = new_node;
}

// 删除指定数值的节点
void delete_node(struct Node** head, int val) {
    struct Node* prev = NULL;
    struct Node* curr = *head;
    while (curr != NULL && curr->data != val) {
        prev = curr;
        curr = curr->next;
    }
    if (curr == NULL) {
        printf("Node with value %d not found.\n", val);
        return;
    }
    if (prev == NULL) {
        *head = curr->next;
    } else {
        prev->next = curr->next;
    }
    free(curr);
}

// 打印链表所有元素
void print_list(struct Node* head) {
    while (head != NULL) {
        printf("%d ", head->data);
        head = head->next;
    }
    printf("\n");
}

int main() {
    struct Node* head = NULL;   // 链表头指针初始化为空
    insert_node(&head, 1);      // 在头部插入节点
    insert_node(&head, 2);
    insert_node(&head, 3);
    insert_node(&head, 4);
    printf("Original list: ");
    print_list(head);           // 打印链表所有元素
    delete_node(&head, 2);      // 删除数值为2的节点
    printf("List after deletion of node with value 2: ");
    print_list(head);           // 再次打印链表所有元素
    return 0;
}

该程序定义了一个链表节点结构体,包含一个整型数据成员和一个指向下一个节点的指针。实现了三个基本操作:插入节点到链表头部、删除指定数值的节点、打印链表所有元素。在 main() 函数中,初始化一个空的链表头指针,并依次插入四个节点,然后打印链表所有元素。最后删除数值为2的节点,并再次打印链表所有元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全职编程-叶逆天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值