Lnode和*linklist

 

typedef struct Lnode{

 

elemtype data;//数据域

struct Lnode *next;//指针域

}Lnode,*Linklist

Lnode,*Linklist是这个结构体的别名,这是为了提高可读性。

Lnode *,Linklist二者本质上是等价的。

习惯用linklist定义单链表,强调的是某个单链表的头指针。

lnode *定义单链表中任意结点的指针变量。

比如,linklist l,那么l是单链表的头指针(为什么是指针,因为linklist本身带有*)。而lnode *p,p指的是单链表中某个结点的指针。

(ps:这里已经有*,那么在使用linklist定义结点指针就不用加*,但是lnode要加*)。

 

struct Lnode *next是因为单链表的指针域,指向的是和当前节点一样的数据类型,也是一个有着两部分(指针域和数据域)的结点,所以也定义为struct Lnode类型的数据,并且这个数据是指针类型的,所以前边加*。简单说是指向结点的指针类型。

既有*next又有*linklist是因为,前后为了把所有结点连成一个整体,后者侧重于对每一个结点进行操作。


ps:elemtype data这里,data的数据类型待用户自己定义,可以是之前说过的图书类型Book,也可以是int等等。

还有结点变量和指针变量不一样。

结点变量:结点的名称。

指针变量:指向某结点的指针变量。

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值