解释单链表的代码~~~

来源:百度知道 编辑:UC知道 时间:2024/06/19 00:22:51
/*尾插入法建表函数*/
linklist *creatlinkt()
{
linklist *s,*t,*head;
datatype1 x;
head=(linklist *) malloc(sizeof(len));/* 得到第一个结点的地址*/
head->next=null;/*置空,避免乱指*/
s=head;/* s也指向第一个结点 */
printf("输入链表x:\n");
scanf("%d",&x);/*得到第一个元素*/
while(x!=-1)
{ t=(linklist *) malloc(len); /* 得到第二个结点的地址*/
t->data=x;/* 将x放到第二个结束的data域中,怎么不放到第一个结点的data域中呢?*/
t->next=null;
s->next=t;/* 将第二个结点的地址放到第一个结点的next中,对不?*/
s=t;/* s指向第二个结点,供一下次的s->next=t使用*/
scanf("d",&x);
}
return(head);

}
我上面的理解,建立的链表的第一个结点岂不是没有元素?即head->data没有元素。
但它是正确是代码。我还有哪些没有理解~~~???
大家指点迷津吧~~~

head->data的确没有元素 但是这不影响编译过程 编译不会报错

在编译过程中是正确代码

第一个是头结点,刚开始的时候是没有元素的,只有你插入的时候才加进去