头指针,头结点,头结点的指针的关系?

根据定义:头指针是指向单链表的指针。但是既然添加了头结点,头结点也是结点啊,也有数据域和指针域(有没有值先不管),那么头结点的指针哪去了?不应该是头结点的指针指向首结点吗... 根据定义:头指针是指向单链表的指针。但是既然添加了头结点,头结点也是结点啊,也有数据域和指针域(有没有值先不管),那么头结点的指针哪去了?不应该是头结点的指针指向首结点吗?(不知道这个结点叫什么,就先称呼为头结点的指针),那么这又该怎么解释呢? 展开
 我来答
娱乐小八卦啊a
高粉答主

2020-02-10 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117860

向TA提问 私信TA
展开全部

头指针与头结点不同,头结点即第一个结点,头指针是指向第一个结点的指针。链表中可以没有头结点,但不能没有头指针。

这个头指针的意义在于,在访问链表时,总要知道链表存储在什么位置(从何处开始访问),由于链表的特性(next指针),知道了头指针,那么整个链表的元素都能够被访问,也就是说头指针是必须存在的。

扩展资料

引入头结点的优势

1、第1个位置的插入删除更加方便

若使用头结点,则第1个位置的插入和删除都是对p—>next进行操作,而不用动p本身,而且减少了算法分支(即if else分支)。

2、统一空表和非空表的处理

若使用头结点,无论表是否为空,头指针都指向头结点,也就是*LNode类型,对于空表和非空表的操作是一致的。

若不使用头结点,当表非空时,头指针指向第1个结点的地址,即*LNode类型,但是对于空表,头指针指向的是NULL,此时空表和非空表的操作是不一致的。

参考资料来源:

百度百科——链表

CodeBlove
推荐于2017-09-20 · TA获得超过3364个赞
知道小有建树答主
回答量:936
采纳率:79%
帮助的人:245万
展开全部
什么叫头结点的指针哪去了?就像你说的,头结点也是结点,所有结点结构都一样的,头结点的指针指向下一个结点啊,链表指针是单独一个指针,你可以看做入口,指引程序找到链表,一旦程序得到链表地址,就可以根据结点的指针一个个地顺藤摸瓜找到所有结点,直到结点n-1,也就是尾结点。

另外,线性链中,尾结点指针是不用的(保留),而如果尾结点的指针指向头结点,头尾相连形成循环链。
更多追问追答
追问

那你看我们课本上这是什么意思?head怎么一会是头指针怎么一会有事头结点了?

追答
你这个是java吧,带泛型接口的,书上例子中定义并封装了单链表的类,并公开了Node类型的对象,该节点对象的地址赋值给了head,所以head就是Node的指针变量,外部程序可以直接访问,如果head中的节点指针指向类内部的链表,外部程序就可以访问所有链表节点。head本身就是指针,只是书上不是直接指向链表,而是new了一个头节点,用头节点的指针再指向链表表头,这种就看设计需要,不用太纠结。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西街口第一号店
2018-10-16 · TA获得超过404个赞
知道答主
回答量:47
采纳率:100%
帮助的人:2.9万
展开全部
那个head就是表示头结点的位置 指向头结点 ,对其操作就是对头结点操作,那个头指针就是指向了头结点,就像我们每次对每一个节点操作,都要有一个额外指针指向它一样,头指针作用就是如此, 就像每一个节点存储的都是
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式