在单链表中设置头结点的作用是什么?

如题

1、防止单链表是空的而设的。当链表为空的时候,带头结点的头指针就指向头结点,如果当链表为空的时候,头结点的指针域的数值为NULL。

2、为了方便单链表的特殊操作,插入在表头或者删除第一个结点。这样就保持了单链表操作的统一性。

3、单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理统一,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。

4、对单链表的多数操作应明确对哪个结点以及该结点的前驱。不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同,从而减少分支,使算法变得简单,流程清晰。

对单链表进行插入、删除操作时,如果在首元结点之前插入或删除的是首元结点,不带头结点的单链表需改变头指针的值,在TurboC算法的函数形参表中头指针一般使用指针的指针(在C++中使用引用&);而带头结点的单链表不需改变头指针的值,函数参数表中头结点使用指针变量即可,对初学者更易接受。



扩展资料

链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。

链表的具体存储表示为:

1、用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)。

2、链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))。

链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。

参考资料来源:百度百科-单链表

参考资料来源:百度百科-头结点

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
设置头结点是为了保证处理第一个节点和后面的节点的时候设计的算法相同,实现程序的高效性。本回答被网友采纳
第2个回答  2017-08-18
在单向链表中,在单链表中设置头节点的作用是(简化插入、删除操作
),除首节点外,任何一个节点的存储位置由(前驱节点的后继指针
)表示。
第3个回答  2008-05-10
头节点用来存放指向链表中首个节点的指针本回答被提问者采纳
第4个回答  2008-05-10
没有头节点,你怎么文章链表?
相似回答