typedef struct Lnode{ Elemtype data; struct Lnode *next; } Lnode,*Linklist;「建议收藏」

typedef struct Lnode{ Elemtype data; struct Lnode *next; } Lnode,*Linklist;「建议收藏」*next是指向下一个值的地址而*Linklist是当前这个值的地址,只是这个值里有数据data,和下一个值的地址就是说链表中,因为数据是随机储存的,所以地址不是连续的,要想读取下一个数,就要知道下一个数据的地址不知道有没有看懂,表达能力不是很好*Linklist相当于一个数组头指针,只是这个数组的元素是结构体*next则是构成链表的一个基本元素,指向该结点下一个结点的地址从某种意义上讲,*Linklist是指定了这段空间在内存中的位置(可以申请连续的结点空间),而*next则对结点进行了一

大家好,又见面了,我是你们的朋友全栈君。

*next是指向下一个值的地址
而*Linklist是当前这个值的地址,只是这个值里有数据data,和下一个值的地址
就是说链表中,因为数据是随机储存的,所以地址不是连续的,要想读取下一个数,就要知道下一个数据的地址
不知道有没有看懂,表达能力不是很好

*Linklist相当于一个数组头指针,只是这个数组的元素是结构体
*next则是构成链表的一个基本元素,指向该结点下一个结点的地址 
从某种意义上讲,*Linklist是指定了这段空间在内存中的位置(可以申请连续的结点空间),而*next则对结点进行了一定的空间排序
`

在括号外面定义的是结构体,意思就是我要定义一个结构体了,里面有什么什么数据,而在里面定义的*next结构体类型的指针,意思是,我定义的结构体每个结点里面有个指针指向的是结构体类型的数据,不是重新定义了。一个指针类型的成员是可以指向自己所在的结构体类型的数据的``



在大括号里的,是这个结构体的成员变量,后面的*Linklist是类型定义。

大括号里的是一个指针,变量名叫next,类型是struct Lnode*,链表的定义你应该知道吧,有一个指针域,指向了下一个节点的地址,就是这里的Lnode,当然,你也可以用void*来指,但是这样你就不能通过结构体类型来访问对应的成员了,而是用结构体的指针struct Lnode*,就不必操心怎么访问成员,直接用指针去->访问就行了,编译器会帮你做好处理。

而外面的那个*Linklist,是结构体定义的一部分,相当于
typedef struct Lnode{ 
   ...}Lnode;
typedef struct Lnode * Linklist;
在定义链表节点时就可以用Linklist 代替(struct Lnode *)了。


https://wenwen.sogou.com/z/q700690087.htm
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Boot 2 学习笔记(1 / 2)[通俗易懂]

    Spring Boot 2 学习笔记(1 / 2)[通俗易懂]01、基础入门-SpringBoot2课程介绍SpringBoot2核心技术SpringBoot2响应式编程学习要求-熟悉Spring基础-熟悉Maven使用环境要求Java8及以上Maven3.3及以上学习资料SpringBoot官网SpringBoot官方文档本课程文档地址视频地址1、视频地址2源码地址02、基础入门-Spring生态圈Spring官网Spring能做什么Spring的能力Spring的生态覆盖了:w

    2022年8月12日
    8
  • Linux命令修改文件名和文件夹名

    Linux命令修改文件名和文件夹名Linux 修改文件名语句 mvoldFileNam 示例 我想把 aaa txt 修改为 bbb txt 示例语句 mvaaa txtbbb txt 把当前目录下的 file1 文件名改成 file2 如果该目录下有 file2 则覆盖以前的 file2 文件

    2025年11月27日
    5
  • phpsotrm 激活码_通用破解码

    phpsotrm 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    48
  • 常用Lamda表达式

    常用Lamda表达式1、在工作中我们有部分lamda表达式经常会用到,在此做个小总结这里新建个实体类,来做测试publicclassLamdaVO{privateIntegerid;privateStringname;privateStringeamil;publicLamdaVO(){}publicLamdaVO(Integ…

    2022年6月11日
    33
  • 转载:多年iOS开发经验总结[通俗易懂]

    转载:多年iOS开发经验总结[通俗易懂]转载:http://www.jianshu.com/p/1ff9e44ccc78总结了几个月的东西终于能和大家分享了,不多说,直接看东西!1、禁止手机睡眠2、隐藏某行cell3、禁用butto

    2022年7月2日
    26
  • Lambda 架构[通俗易懂]

    Lambda 架构[通俗易懂]参考文章:大数据处理中的Lambda架构和Kappa架构简介Lambda架构(LambdaArchitecture)是由Twitter工程师南森·马茨(NathanMarz)提出的大数据处理架构。这一架构的提出基于马茨在BackType和Twitter上的分布式数据处理系统的经验。Lambda架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性。Lambda架构总共由三层系统组成:批处理层(BatchL

    2022年6月25日
    41

发表回复

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

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