关于头指针:
1.在线性表的链式存储结构中,头指针是指链表中指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。
2.头指针具有标识作用,因此经常使用链表的名字作为头指针名
3.无论链表是否为空,头指针均不为空。头指针是链表的必要元素。
关于头结点:
1.头结点是放在第一个元素结点之前的结点,头结点不是链表中的必须元素,其数据域一般无意义,(有些情况下会存放链表的长度,或用作监视哨等)
2.有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,这些操作与对其他结点的操作就相同了。
以下是对链表中进行插入时的操作:
void inputLlist(Linklist *lst,int n,int* arr)
{
for(int i=n-1;i>=0;i--)
{
LNode *p=(LNode*)malloc(sizeof(LNode));
p->data=arr[i];
p->next=(*lst)->next; //p->next=*lst;
(*lst)->next=p; //保留原头结点 //*lst=p;红色部分表示插入时不断改变头结点,头指针
}
}