单链表:头指针 头结点 首元结点区别与联系

单链表组成:头指针+头结点+第一个结点+第二个结点+第三个结点.............第N个结点。

注意下图中:首元结点就是第一个结点。

 头指针:作用:1.头指针的名字就是本链表的名字   2.头指针也是一个指针,存放头节点地址

头结点:作用:1.规定当头节点的指针域为空,则本链表为空。

首元结点:就是本链表的第一个结点(真正存放数据的第一个结点)

结点:构成1.数据域   2.指针域(结点指针指向下一个/上一个结点地址,而不是本结点地址!!本结点地址在上一个/下一个结点的指针域中!)

疑点:

1.为什么要有头指针?我直接弄个1号结点后接2号结点接3号结点不就好了?

答:内存中有很多很多链表,你怎么知道找哪一个?头指针就是定位要找的链表的。

2.为什么要有头结点?我直接头指针后接1号结点后接2号结点接3号结点不就好了?

 答:当你要清空一个链表时,你把1234......结点清空了,就剩个头指针了,头指针好歹是个指针吧,它要是只剩自己而不指向一个地址那不就没有意义了吗?没有意义的东西在内存中会被自动清除掉,也就是当你把1234.....结点清空的时候也就是本链表泯灭的时候。

但是你只想删除链表中的1234....结点,链表保留,我以后还要再加东西呢,这时候咋办?都泯灭了。于是乎------为解决这个难题:头结点出现了,头节点中不存任何数据值,头结点作用:被头指针指/指向后面的1234.....结点。就算1234....被清空我也不泯灭,还有个头结点扛着,以后想加点啥就在头节点后加点啥。

3.图片中的红线啥意思?

红线是方便理解链表:头指针和头结点是规定的,永恒存在的,跟小区的保安一样,人就规定每个小区必须有保安,那链表就必须有头指针+头结点。

注意:本文的结点==节点(输入法有病)

  • 13
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值