带头节点和不带头节点单链表的基础概念

1、单链表定义

链表是通过一组任意的存储单元来存储线性表中的数据元素,
这些存储单元可以是连续的也可以是不连续的。

 

指针:通常使用“头指针”来标识一个链表,如单链表L,头指针为NULL的时表示一个空链表。链表非空时,头指针指向的是第一个结点的存储位置。

头结点:在单链表的第一个结点之前附加一个结点,称为头结点。头结点的Data域可以不设任何信息,也可以记录表长等相关信息。若链表是带有头结点的,则头指针指向头结点的存储位置。

无论是否有头结点,头指针始终指向链表的第一个结点。如果有头结点,头指针就指向头结点(只不过头结点的数据域为空而已)。

2、单链表分为有带头结点和不带头结点的单链表

带头结点的单链表,头指针head指向头结点,头结点的值域不包含任何信息,从头结点之后的结点开始存储信息。看个人编程习惯决定使用哪一种单链表。

不带头结点的

 

 带头结点的

 

 

3、单链表分为有带头结点和不带头结点的插入方法

①不带头结点的链表,在表头插入结点

x->next = head;
head = x;

不带头结点的链表,在表头以外的地方插入结点

x->next = p->next;
p->next = x;

②带头结点的链表,在第一个位置插入结点

x->next = p->next;
p->next = x;

带头结点的链表,在其他位置插入结点

x->next = p->next;
p->next = x;

 

posted @ 2022-10-08 15:00  kuailest  阅读(167)  评论(0编辑  收藏  举报