首页 > 后端开发 > C++ > 正文

c语言单链表怎么写

下次还敢
发布: 2024-05-21 04:24:53
原创
1200人浏览过
单链表是一种线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。在 C 语言中,它可以用 struct 定义节点,并用指针表示链表。基本操作包括:创建链表在头部或末尾插入元素在头部、中间或末尾删除元素遍历链表

c语言单链表怎么写

C 语言单链表的实现

什么是单链表?

单链表是一种线性数据结构,它由一组连接在一起的节点组成,每个节点包含两个部分:数据域和指针域。数据域存储实际数据,而指针域指向下一个节点。

如何实现单链表?

立即学习C语言免费学习笔记(深入)”;

在 C 语言中,我们可以使用 struct 定义一个节点:

struct node {
    int data;
    struct node *next;
};
登录后复制

然后,链表本身可以用一个指向第一个节点的指针来表示:

struct node *head;
登录后复制

基本操作

以下是一些基本操作的实现:

  • 创建链表:
head = NULL;  // 创建一个空链表
登录后复制
  • 插入元素:

在链表头部插入元素:

struct node *new_node = (struct node *)malloc(sizeof(struct node));
new_node->data = value;
new_node->next = head;
head = new_node;
登录后复制

在链表末尾插入元素:

struct node *new_node = (struct node *)malloc(sizeof(struct node));
new_node->data = value;
new_node->next = NULL;

if (head == NULL) {
    head = new_node;
} else {
    struct node *current = head;
    while (current->next != NULL) {
        current = current->next;
    }
    current->next = new_node;
}
登录后复制
  • 删除元素:

在链表头部删除元素:

if (head != NULL) {
    struct node *temp = head;
    head = head->next;
    free(temp);
}
登录后复制

在链表中间或末尾删除元素:

if (head != NULL) {
    struct node *current = head;
    struct node *prev = NULL;

    while (current != NULL && current->data != value) {
        prev = current;
        current = current->next;
    }

    if (current != NULL) {
        if (prev == NULL) {
            head = current->next;
        } else {
            prev->next = current->next;
        }
        free(current);
    }
}
登录后复制
  • 遍历链表:
struct node *current = head;

while (current != NULL) {
    // 访问当前节点的数据
    printf("%d ", current->data);
    current = current->next;
}
登录后复制

以上就是c语言单链表怎么写的详细内容,更多请关注php中文网其它相关文章!

C语言速学教程(入门到精通)
C语言速学教程(入门到精通)

C语言怎么学习?C语言怎么入门?C语言在哪学?C语言怎么学才快?不用担心,这里为大家提供了C语言速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号