单链表:一个序列中只含有指向后继结点的连接。
头指针:指向第一个节点的指针。
头结点:这个结点的数据域不存储任何信息。
带头结点的链表的初始化:
//不带头结点的单链表的初始化
void LinkedListInit1(LinkedList L)
{
L=NULL;
}
//带头结点的单链表的初始化
void LinkedListInit2(LinkedList L)
{
L=(LNode *)malloc(sizeof(LNode));
if(L==NULL)
{
printf("申请空间失败!");
exit(0);
}
L->next=NULL;
}
看来平常我们大多数用的都是带头结点的俩表。
只不过刚才我写的堆栈题目是没有在头结点中存储信息。
后来我一直在思考头节点到底有什么好处呢:
我现在得到了答案:
1.它可以防止单链表为空
2.虽然大多时候头头节点里都不放元素,但是我们可以防止链表的长度,完美。
3.可以更方便的在表头插入或者是删除头元素。