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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android面试题(四大组件篇)[通俗易懂]

    Android面试题(四大组件篇)[通俗易懂]Android面试题(四大组件篇)window、进程、线程篇Android面试题(数据存储、view篇)ActivityQ:说下Activity的生命周期?Q:onStart()和onResume()/onPause()和onStop()的区别?是否位于前台,对用户是否可见的区别Q:ActivityA启动另一个ActivityB会回调哪些方法?如果A…

    2022年5月21日
  • checkbox选中和不选中 jqu_jquery checkbox 选中不选中

    checkbox选中和不选中 jqu_jquery checkbox 选中不选中展开全部$(function(){//动态绑定默认状态//$(“#ck”).attr(“checked”,true)//选中//$(“#ck”).attr(“checked”,false)//未选中//点击判断选中还是未选中$(“#ck”).click(function(){if($(this).is(“:checked”)){alert(“选中”);}else{alert…

    2022年6月30日
  • LNMP详解(九)——Nginx虚拟IP实战

    LNMP详解(九)——Nginx虚拟IP实战今天继续给大家介绍Linux运维的相关知识,本文主要内容是Nginx的虚拟IP实战。一、实战背景二、虚拟IP配置三、效果检验

    2022年10月10日
  • c++的字符串数组string[通俗易懂]

    c++的字符串数组string[通俗易懂]用字符数组来存放字符串并不是最理想和最安全的方法。C++提供了一种新的数据类型——字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量——用一个名字代表一个字符序列。实际上,string并不是C++语言本身具有的基本类型,它是在C++标准库中声明的一个字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象。一、字符…

    2022年10月31日
  • Delphi中QuotedStr()

    Delphi中QuotedStr()1.定义给字符串两边加单引号并返回.声明:functionQuotedStr(constS:string):string;用函数QuotedStr把字符串S转换成为用引号括起来的字符串。单引号”’”将被插入到字符串s的最前和最后。2.范例特别可以应用在delphi的中的SQL语句,避免漏写的情况。lsstr:=…+QuotedStr(‘STR’)+…lsstr:=…+’WHERE‘’‘+‘abc‘+’’’…’QTmpR2.Close;QT

    2022年10月18日
  • 递归和迭代的对比

    递归和迭代的对比递归和迭代的对比递归迭代特点递归程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小递…

    2022年5月3日

发表回复

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

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