鱼C论坛

 找回密码
 立即注册
查看: 1147|回复: 3

[已解决]单链表的基本操作

[复制链接]
发表于 2023-9-21 21:26:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这里最后的LNode是在创建变量吗,还是说把LNode重定义为了LNode?以及下面的typedef struct LNode *LinkList意思是重定义LinkList为struct LNode *类型吗还是说*LinkList重定义为struct LNode类型?求详细解答。
最佳答案
2023-9-22 23:26:02
这里最后的LNode是在创建变量吗,还是说把LNode重定义为了LNode?以及下面的typedef struct LNode *LinkList意思是重定义LinkList为struct LNode *类型吗还是说*LinkList重定义为struct LNode类型?求详细解答。


Question 1. 这里的LNode只不过是一个声明,就是声明了一个模板。注意前面的 typedef 关键字,这个表明是给 struct LNode 声明一个别名叫 LNode.
如果你把前面的 typedef 去掉,那这个语法确实是在声明一个全局变量(但会报错,名称重复)

Question 2. typedef struct LNode * LinkList 指的是把 struct LNode * 类型,也就是指向 struct LNode 变量的指针,取了一个别名叫 LinkList.
屏幕截图 2023-09-21 212149.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-21 21:26:33 | 显示全部楼层
LNode是一个结构体类型,它在这里是被用来定义单链表的每个节点。在这段代码中,LNode是在创建变量,它用于定义一个名为L的指向结构体LNode的指针。

而下面的typedef struct LNode *LinkList是将struct LNode *类型重定义为LinkList类型。这意味着我们可以使用LinkList作为定义指向LNode结构体指针的类型。这样做的好处是可以简化代码,使其更易读和理解。同时,使用LinkList作为类型名也可以隐藏底层的实现细节,提高代码的可维护性。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-21 21:29:06 | 显示全部楼层
isdkz 发表于 2023-9-21 21:26
LNode是一个结构体类型,它在这里是被用来定义单链表的每个节点。在这段代码中,LNode是在创建变量,它用于 ...

是指大括号后面的LNode在用来创建变量吗?在这里创建一个变量有什么作用呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-22 23:26:02 | 显示全部楼层    本楼为最佳答案   
这里最后的LNode是在创建变量吗,还是说把LNode重定义为了LNode?以及下面的typedef struct LNode *LinkList意思是重定义LinkList为struct LNode *类型吗还是说*LinkList重定义为struct LNode类型?求详细解答。


Question 1. 这里的LNode只不过是一个声明,就是声明了一个模板。注意前面的 typedef 关键字,这个表明是给 struct LNode 声明一个别名叫 LNode.
如果你把前面的 typedef 去掉,那这个语法确实是在声明一个全局变量(但会报错,名称重复)

Question 2. typedef struct LNode * LinkList 指的是把 struct LNode * 类型,也就是指向 struct LNode 变量的指针,取了一个别名叫 LinkList.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 04:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表