LinkNode *CreateLinkList()//头插入法无头结点建立线性表
{ LinkNode *head,*p,*s;
int x;
int z=1,n=0;
head=NULL;
printf("\n\t\t建立一个线性表");
printf("\n\t\t说明:请逐个输入整数,结束标记为“-1”!\n");
while(z)
{ printf("\t\t输入:");
scanf("%d",&x);
if(x!=-1)
{ s=(LinkList *)molloc(sizeof(LinkNode));
n++;
s->data=x;
s->next=head;
head=s;
}
else z=0;
}
return head;
}
当中
s->data=x;
s->next=head;
head=s;
这三句的解释
LinkNode 这个结构体中有两个元素,一个是data代表结构体的数值,另一个是LinkNode类型的指针Next,表示的是当前结构体指向的下一个结构体,这样就形成了一个链状的存储结构。
s->data=x; 表示将x的值赋给s这结构体的数据段(data)
s->next=head; 表示s指向的下一个结构体就是名字为head的结构体,开始的时候head是空的,这样就形成了一个判断条件,当链表的某一结构体的next为null是链表就结束了。
head=s; head表示链表的头,也就是整个链表的入口,这句话表示将最前面那个结构体赋给head做为链表的入口。