主题:有关尾插法建立单链表的问题
以下是我们的数据结构教材上的尾插法建立单链表:
void CreateListR(LinkList &L,ElemType a[],int n)
{
LinkList *s,*r;int i;
L=(LinkList *)malloc(sizeof(LinkList)); /*创建头结点*/
L->next=NULL;
r=L; /*r始终指向终端结点,开始时指向头结点*/
for(i=0;i<n;i++)
{s=(LinkList*)malloc(sizeof(LinkList)); /*创建新结点*/
s->data=a[i];
r->next=s; /*将*s插入*r之后*/
r=s;
}
r->next=NULL; /*终端结点next域置为NULL*/
}
小弟不明白的是头结点L的next域为空,那建立的单链表不也为空吗?总觉得程序有点问题,希望高手能帮忙解释一下
void CreateListR(LinkList &L,ElemType a[],int n)
{
LinkList *s,*r;int i;
L=(LinkList *)malloc(sizeof(LinkList)); /*创建头结点*/
L->next=NULL;
r=L; /*r始终指向终端结点,开始时指向头结点*/
for(i=0;i<n;i++)
{s=(LinkList*)malloc(sizeof(LinkList)); /*创建新结点*/
s->data=a[i];
r->next=s; /*将*s插入*r之后*/
r=s;
}
r->next=NULL; /*终端结点next域置为NULL*/
}
小弟不明白的是头结点L的next域为空,那建立的单链表不也为空吗?总觉得程序有点问题,希望高手能帮忙解释一下