前言:想要很好的学好链表,我们首先要了解链表的优缺点(面试)

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

1.单链表

通俗讲就是结构体变量与结构体变量链接在一起.
链表结构体变量:一般由 数据域(任何数据)和指针域 组成。也就是所说的结点。
结点组成:

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


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

#Include<stdio.h>
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;
}

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

3.动态链表
这种链表在初始时不一定分配足够的空间, 但是在后续插入的时候需要动态申请存储空间,并且存储空间不一定连续, 在进行插入和删除时则不需要移动元素, 修改指针域即可,所以仍然具有链表的主要优点,链表结构可以是动态地分配存储的,即在需要时才开辟结点的存储空间,实现动态链接。(来自百度百科)
3.1如何建立动态链表?
步骤:
**1.创建链表(造个火车头)
2.创建结点
3.插入结点
4.删除结点

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;
}

注:此处不懂可以观看此视频第30分钟:https://www.bilibili.com/video/av35425556?from=search&seid=642529453300322955
本文章大多灵感来源于此,鸣谢作者!
重要!!!欢迎对撸代码有兴趣的同学一起交流,大学生也可!!!带你一起写项目致富!QQ:1324252797

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

  1. 【排序】什么都能排的C语言qsort排序详解【超详细的宝藏级别教程】深度理解qsort排序

    [排序]什么都能排的C语言qsort排序详解[超详细的宝藏级别教程]深度理解qsort排序 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客之前,博主在这里 ...

  2. 【C语言】操作符详解(超详细)

    hello~~,我是~小鹿,超级详细的操作符讲解来康康吧 可以收藏随时找到这里哦~ [C语言]操作符详解(超详细) 1.算数操作符:+,-,*,/,% 2.位移操作符:<< , >& ...

  3. 【数据的存储】浮点数在内存中的存储详解【超详细的保姆级别教程,让面试官心服口服】手撕浮点数存储使用方式

    [数据的存储]浮点数在内存中的存储详解[超详细的保姆级别教程,让面试官对你心服口服]手撕浮点数存储使用方式 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客 ...

  4. [转]数据结构KMP算法配图详解(超详细)

    KMP算法配图详解 前言 KMP算法是我们数据结构串中最难也是最重要的算法.难是因为KMP算法的代码很优美简洁干练,但里面包含着非常深的思维.真正理解代码的人可以说对KMP算法的了解已经相当深入了.而 ...

  5. PnP算法详解(超详细公式推导)

    PnP算法详解 PnP概述 PnP数学模型 PnP求解方法 DLT直接线性变换法 EPnP EPnP的特点 步骤 理论推倒 1.控制点及齐次重心坐标系 2.控制点的选择 3.计算控制点在相机坐标系下的 ...

  6. Unity中AB包详解(超详细,特性,打包,加载,管理器)

    Unity中的AssetBundle详解 AssetBundle的概念 AssetBundle又称AB包,是Unity提供的一种用于存储资源的资源压缩包. Unity中的AssetBundle系统是对 ...

  7. [Win32SDK基本] 窗口详解(超详细)

    本文由CSDN用户zuishikonghuan所作,转载请注明出处 http://blog.csdn.net/zuishikonghuan/article/details/46378475 Win ...

  8. 数据结构KMP算法配图详解(超详细)

    KMP算法配图详解 前言 KMP算法是我们数据结构串中最难也是最重要的算法.难是因为KMP算法的代码很优美简洁干练,但里面包含着非常深的思维.真正理解代码的人可以说对KMP算法的了解已经相当深入了.而 ...

  9. Linux账号和权限管理详解(超详细示例操作)!

    Linux账号和权限管理详解 一.用户账号和组账号概述 1.1 Linux基于用户身份对资源访问进行控制 1.2 用户账号 1.3 组账号 二.用户账号文件 2.1 用户账号文件 /etc/passw ...

  10. Spring高级之注解@ComponentScan详解(超详细)

    定义/作用 @ComponentScan注解用于实现spring主键的注解扫描,会扫描特定包内的类上的注解. 源码(对属性进行一些简介,会在后文中详细讲解每个属性): @Retention(Reten ...

最新文章

  1. 9种没结果的爱(未婚者必读)!!!
  2. jQuery安装和语法
  3. 《信息存储与管理》读书笔记7 存储虚拟化
  4. python交互界面用图片当背景_wxPython实现窗口用图片做背景
  5. 前端学习(1856)vue之电商管理系统电商系统之安装mysql出现mysql报错:Can’t start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址
  6. torch.nn.Module()
  7. 苹果WWDC 2019日期曝光 iOS 13也即将到来!
  8. encoder.cpp(340) [feature_index.open(templfile, trainfile)]feature_index.cpp(174) [max_size == size]
  9. 【恋上数据结构】回溯、剪枝(八皇后、n皇后)、LeetCode51.N皇后、LeetCode52.N皇后 II
  10. 前端绝对路径不显示图片_[锋利web前端开发]sass小技巧图片版本号和绝对路径引用...
  11. 44. 将样式表放在顶部(5)
  12. java common-lang_commons-lang.jar下载
  13. Scrum:官僚者们的游戏
  14. 中国近代史知识要点总结
  15. android cpu过高的原因,关于android 进程CPU占用率高的原因分析
  16. 关于AWB的肤色问题
  17. PDC10与最后的恐慌者
  18. python爬虫公众号音频源代码_python爬取音频下载的示例代码
  19. Mac Excel快捷键
  20. 计算机教育中缺失的一课 - MIT - L5 - 命令行环境

热门文章

  1. HMC5883L手册总结与经验分析 详解
  2. linux copy 复制文件夹及子文件夹
  3. Xcopy 复制文件和目录,包括子目录。
  4. codesys写文件到远程并在远程读取文件
  5. 大牛给计算机专业学生的 7 个建议
  6. Cobar的安装和配置步骤
  7. 企业微信加好友太频繁怎么办?
  8. 【Electron+Vue】【一】开发跨平台桌面应用了解+构建
  9. 面试官:如何实现扫码登录功能?
  10. 用学生邮箱申请Jetbrains教育版账号教程(广中医为例)