typedef struct LNode{ElemType  data;  //数据域struct LNode *next;    //指针域
}LNode, *LinkList

先说结论,这个就可以直接理解为

第一个是便于定义变量的类型为LNode,如果没有使用typedef,定义时就需要写 struct LNode LNode;
第二个是便于定义指向LNode这个类型的指针

其还有一个作用:
LNode * 一般强调的是返回的是一个结点
LinkList 一般强调的是这是一个单链表

比如在上面这个栗子中

举个栗子:
在表示一个单链表时,只需声明一个头指针L,指向单链表的第一个结点(也就是头结点)

LNode *L //声明一个指向单链表第一个节点的指针
LinkList L //和上面功能相同

可以看到,很明显用LinkList使得代码可读性更强了。

typedef的作用就是为类型添加别名,可以增加代码的扩展性,特别是在有时候类型需要用通用的ElemType去泛指的时候,其就达到了一种解耦的效果,这里还需要注意的是其需要与结构体变量区分开来,结构体变量并不是定义的别名.

例如,对于这个代码

 struct LNode{ElemType  data; //数据域struct LNode *next;    //指针域
}LNode

就等于 Struct LNode LNode; 等同于定义了一个LNode类型的变量,名为 LNode.

关于单链表结构体定义结点时 LNode *LinkList的理解相关推荐

  1. 单链表结构体定义解析

    B站 typedef struct LNode{ ElemType data;struct LNode *next; }LNODE, *LinkList;

  2. 对于单链表结构体中LinkList以及Lnode,*LinkList两种不同定义方式的个人理解

    在学习数据结构时,我们可以看到不同的书籍或者不同的人对于单链表结构体的定义是不一样的. 大致分为下面两种 第一种 typedef int ElemType; typedef struct Lnode{ ...

  3. 数据结构常用的结构体定义

    一.顺序表结构体定义: typedef struct {     int data[maxsize];     int length;  }Sqlist; 二.单链表结构体定义: typedef st ...

  4. C++ 线性表的结构体定义(顺序表和链式表)

    线性表的结构体定义: 1.顺序表的结构体定义 typedef struct {int data[maxSize];int length;} Sqlist; 2.单链表结点的结构体定义 typedef ...

  5. c语言 增加 删除 修改的功能 不用链表,不用链表,单是结构体写入文件后,是否可以进行修改删除...

    不用链表,单是结构体写入文件后,是否可以进行修改删除 #include #include #include typedef struct Node { char  num[20]; char name ...

  6. C++结构体定义(链表等)

    文章目录 定义 解释 声明 定义变量 在声明类型的同时定义变量 直接定义结构体类型变量(不常用) 结构体内定义函数(重要) 结构体变量的初始化 在结构体内定义初始化函数(重要) 在定义变量时进行初始化 ...

  7. 《数据结构》c语言版学习笔记——单链表结构(线性表的链式存储结构Part1)

    线性表的链式存储结构 数据结构系列文章 第二章 单链表结构 文章目录 线性表的链式存储结构 前言 一.单链表的建立 代码 二.单链表的读取 代码 三.单链表的插入 代码 四.单链表的删除 代码 五.单 ...

  8. 带头结点单链表、不带头结点单链表(头指针单链表)

    1.头结点和头指针的区别 1.1区别: 头指针表明了链表的结点,可以唯一确定一个单链表. 头指针指向链表的第一个结点,其记录第一个存储数据的结点的地址. 头结点是点链表的第一个结点,若单链表有头结点, ...

  9. 单链表删除所有值为x的元素_C/C++编程笔记:如何使用C++实现单链表?单链表的基本定义...

    如何弥补顺序表的不足之处? 第一次学习线性表一定会马上接触到一种叫做顺序表(顺序存储结构),经过上一篇的分析顺序表的优缺点是很显然的,它虽然能够很快的访问读取元素,但是在解决如插入和删除等操作的时候, ...

  10. 通讯录中每个通讯者的信息包括编号、姓名、性别、电话、E-mail地址;采用单链表结构存储

    通讯录中每个通讯者的信息包括编号.姓名.性别.电话.E-mail地址:采用单链表结构存储,实现以下功能: 1.通讯录的建立 2.通讯者信息的插入 3.通讯者信息的查询 4.通讯者信息的删除 5.通讯录 ...

最新文章

  1. Python全栈工程师(多继承、函数重写)
  2. Maven初探-如何快速入手一个项目
  3. bgp协议 怎么知道相邻路由的ip地址_BGP的名词解释
  4. 【AWSL】之Linux磁盘管理与文件系统(fdisk、df、mount、umount、lsblk)
  5. 转:给自己TopCoder SRM的建议
  6. appium+java(五)微信小程序自动化测试实践
  7. java货物进销管理系统_java实验 货物进销管理系统
  8. java 干支_Java實現干支紀年法
  9. Android笔记之权限库AndPermission
  10. hdu2647(拓扑排序)
  11. python初学小结三:文件、集合、函数、变量等
  12. HtmlHelper类在View中替代了纯HTML代码
  13. QML Rectangle矩形
  14. javaWeb发展历史
  15. 如何隐藏电脑下方工具栏个别图标_小编教你电脑如何隐藏任务栏图标
  16. 树莓派简易快速安装OpenCV4
  17. python图片标记_用python找出那些被“标记”的照片
  18. html 标签置底,学习笔记:让元素永久置底的几种方案(css only)
  19. 阿里云云计算工程师 ACP 认证(Alibaba Cloud Certified Professional -Cloud Computing)考试大纲
  20. Linux系统Docker配置阿里云镜像加速器

热门文章

  1. 服务器操作系统套什么定额,数据库服务器套什么定额
  2. 牛头刨床设计matlab生成图片,牛头刨床matlab程序---机械原理课程设计
  3. socket 通信之 recv函数
  4. [ javascript ] 司徒正美的fadeOut-fadeIn效果!
  5. 反转链表 c++实现
  6. linux 流程图软件有哪些,除了visio,流程图软件还有哪些?
  7. Sicar标准柜架模板 3.0 版 西门子S7-1500PLC PN总线程序
  8. 三菱伺服自动调谐_三菱MR-J3-60B-RJ004 更为先进的实时自动调谐通过设定响应值,全闭环控制型驱动器 MR-J3-60B-RJ004 - 广州凌控...
  9. 【吐血整理】Python 常用模块(二):json 模块
  10. Python单例模式