有表头结点和无表头结点单链表的区别

我发现它们都有头指针L,无表头的指向的就是首元结点,而有表头结点的就是指向头结点,这么理解对吗?

表头结点和无表头结点单链表的区别为:指向不同、数据域不同、简洁性不同。

一、指向不同

1、有表头结点单链表:有表头结点单链表的头指针指向头结点。

2、无表头结点单链表:无表头结点单链表的头指针指向第一个首元结点。

二、数据域不同

1、有表头结点单链表:有表头结点单链表的数据域需要保存表头信息。

2、无表头结点单链表:无表头结点单链表的数据域可以不存任何信息。

三、简洁性不同

1、有表头结点单链表:有表头结点单链表减少了单链表添加删除时特殊情况的判断,减少了程序的复杂性。

2、无表头结点单链表:无表头结点单链表删除或添加时都得需要判断一次首元结点。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-27
可以这么理解,有表头的节点的偷节点一般不带数据,和无表头的节点最大的区别在于使用起来有表头的更加方便和易于理解。举个例子,如果你需要删除一个链表中的节点,如果是无表头你就要考虑删除的是不是表头的情况,万一删除了表头那么整个链表都不复存在(虽然还在占用内存);而对于有表头节点,因为存有数据的都不是表头,删除的时候无须考虑删除表头节点导致链表找不到的情况发生。追问

请问表头是什么?是首元素或者头指针还是其他的?

追答

表头一般是一个只存储地址指针的结构体,指向你真正要存储的东西,说白了就是指向“无表头的结构体”

本回答被网友采纳