1.形态
普通单向链表头节点前面增加一个空的表头节点
2.表头节点
数据域不用存储具体数值
优点:
查找链表不需要两个指针连动
插入算法不用再区分头部中间
3.实现带表头节点的单项链表
ElemSN *CreadLink(int L)//定义链表长度
{
ElemSN *head,*tail;
head=tail=(ElemSN *)malloc(sizeof(ElemSN));//创建表头节点
for(int i=0;i<L;i++){
tail=tail->next=(ElemSN *)malloc(sizeof(ElemSN));
tail->next=NULL;
}
return head;
}
4.实现删除数据域为key的节点
ElemSN *DelKeyNode(ElemSN *head,int key)
{
ElemSN *p,*del;
for(p=head;p&&p->next->Data!=key;p=p->next);
del=p->next;
p->next=del->next;
free(del);
del=NULL;
}