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

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.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值