不带头结点的单链表head为空的条件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

不带头结点的单链表head为空的条件:
判定该链表为非空的条件是:head->next!=null。

带头节点的情况下,链表空时还会存在一个节点,所以head不为空,head->next为空不带头节点的情况下,链表空时,没有任何节点,head指向null。

无论是否有头结点,头指针始终指向链表的第一个结点。

如果有头结点,头指针就指向头结点。

头结点的作用是使所有链表的头指针非空,并使对单链表的插入、删除操作不需要区分是否为空表或是否在第一个位置进行,从而与其他位置的插入、删除操作一致。

头结点与链表状态的关系:防止单链表是空的而设的。

当链表为空的时候,带头结点的头指针就指向头结点。

如果当链表为空的时候,头结点的指针域的数值为NULL。

方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。

对单链表的多数操作应明确对哪个结点以及该结点的前驱。

不带头结点的链表对首元结点、中间结点分别处理等。

而带头结点的链表因为有头结点,首元结点、中间结点的操作相同,从而减少分支,使算法变得简单,流程清晰。

相关文档
最新文档