C语言链表详解(通俗易懂,超详细)

C语言链表详解(通俗易懂,超详细)前言 想要很好的学好链表 我们首先要了解链表的优缺点 面试 优点 1 插入删除不需移动其他元素 只需改变指针 2 链表各个节点在内存中空间不要求连续 空间利用率高缺点 1 访问数组元素效率低 2 数组的存储空间连续 内存空间利用率低 1 单链表通俗讲就是结构体变量与结构体变量链接在一起 链表结构体变量 一般由数据域 任何数据 和指针域组成 也就是所说的结点 结点组成 stru

优点:1.插入 删除 不需移动其他元素, 只需改变指针;2:链表各个节点在内存中空间不要求连续!空间利用率高
缺点:1.访问数组元素效率低;2:数组的存储空间连续,内存空间利用率低
重要!!!欢迎对撸代码有兴趣的同学一起交流,大学生也可!!!带你一起写项目致富!:
视频讲解:https://space.bilibili.com/






1.单链表

struct Node { 
    int data; //数据域 struct Node* next; //指针域 }; 

链表
其实通俗来讲链表就像一列火车,每一借车厢里面装载的货物就是各种各样的数据,而连接他们的就是通过指针。
2.如何连接他们呢?




#Include 
    struct Node { 
    int data; struct Node* next; } int main() { 
    struct Node Node1={ 
   1,NULL}; //Node1,其数据域里面存放1,指针域为空 struct Node Node1={ 
   2,NULL}; struct Node Node1={ 
   3,NULL}; //定义好了车厢,接下来要连接车厢 Node1.next=&Node2; //将Node2的地址发送给Node1,完成链接 Node2.next=&Node3; } 

此为静态链表(不经常使用)

struct Node*createList() { 
    //火车头 struct Node*headNode=(struct Node*)malloc(sizeof(struct Node)); //此处malloc作用是向系统申请内存 //初始化变量 headNode->next=NULL; return headNode; } 之后在主函数中调用 struct Node*createList() 函数 接下来创建结点: c struct Node*createList(int data)//创建结点区别在于多了数据域 { 
    struct Node*newNode=(struct Node*)malloc(sizeof(struct Node));//动态内存申请 newNode->data=data; newNode->next=NULL;//初始化变量 } 

结点的插入方法一般有:头插法;尾插法
我们先来讲链表的打印
链表的打印可以看作,火车到站,装卸工人从你选择的地方拿着记录本,依次往后记录着每节车厢的货物。




void printList(struct Node*headList) { 
    struct Node* pMove=headNode->next;//pMove就是装卸工人 while(pMove) { 
    printf("%d",pMove->data);//记录 pMove=pMove->next;//向下一节车厢移动 } printf("\n"); } 

插入函数(头插法)

void insertNodeByhead(struct Node* headNode) { 
    struct Node*newNode=createNode(data);//创建结点 newNode->next=headNode->next; headNode->next=newNode; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226667.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:24
下一篇 2026年3月16日 下午10:24


相关推荐

  • 【2026 最新版】OpenCode 进阶指南:配置自定义 API,在 CMD 终端里解锁 Claude Code(保姆级教程)

    【2026 最新版】OpenCode 进阶指南:配置自定义 API,在 CMD 终端里解锁 Claude Code(保姆级教程)

    2026年3月15日
    3
  • onedrive免费扩容25t_onedrive怎么免费扩容1T

    onedrive免费扩容25t_onedrive怎么免费扩容1TOneDrive存储我们都知道没有开office365,自己onedrive的储存空间只有5GB,onenote做笔记以及用onedrive同步文档空间不够,但是又不想开office365;所以在网上看到别人说onedrive可以推荐别人注册,可以扩容10GB;加起来一共15GB,用来做笔记完全够用;或许有大佬会说可以弄到Office教育版的微软账号,有5T或1T的存储空间,但是这个会涉及到账号里面文档的安全性,这种账号是属于教育机构的,全局管理员可以有权查看里面储存的文件并且有权删去账号,这样的

    2025年10月17日
    3
  • 什么是债券久期[通俗易懂]

    什么是债券久期[通俗易懂]在做债券的投资分析中经常出现的一个词汇——债券久期,之前更多地是专注于开发,并不明白数字背后的业务含义,今天特意梳理下并做个记录。百度百科的解释:久期也称持续期,是1938年由F.R.Macaula

    2022年8月3日
    5
  • C语言贪吃蛇代码_c语言贪吃蛇游戏

    C语言贪吃蛇代码_c语言贪吃蛇游戏一、C语言贪吃蛇代码实现前言设计贪吃蛇游戏的主要目的是让大家夯实C语言基础,训练编程思维,培养解决问题的思路,领略多姿多彩的C语言。贪吃蛇是非常经典的一款游戏,本次我们模拟在控制台实现贪吃蛇游戏,也就是实现贪吃蛇的基本功能,比如在地图中,用“↑↓←→”控制移动蛇的方向,吃掉食物之后,蛇身体会变长等等。。。。首先我们得分析,游戏中我们会碰见的一些情况。①蛇的部分,蛇的身子是一节一节的,此时最容易联想到的数据结构就是顺序表,链表,如果把蛇比做顺序表或者链表,在之后吃到食物的时候,身子肯定会变长,

    2025年9月6日
    6
  • 眼图测试分析

    眼图测试分析眼图测试分析 转载原网址 http m elecfans com article 662764 htm 原网址 http m elecfans com article 662764 htm 波形参数测试是数字信号质量评估最常用的测量方法 但是随着数字信号速率的提高 仅仅靠幅度 上升时间等的波形参数的测量方法越来越不适用了 比如下图的一个 5Gbps 的信号来说 由于受到传输通道的损耗的影响

    2026年3月18日
    1
  • 如何获取服务器时间_获取服务器硬件信息

    如何获取服务器时间_获取服务器硬件信息使用Sigar获取服务器信息

    2022年4月20日
    101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号