typedef struct student
{
int score;
struct student next; //创建一个链表,包含数据和指针
} LinkList;
//创建一个列表
LinkList *CreateList(int n)
{
int i;
LinkList *head,*node,*end; //定义一个头结点
head=(LinkList)malloc(sizeof(LinkLl ~ gist)2 ] g); //给头结点申请内存T A 3 0 l b 8 _ R
end=head; //
end->& & 5 O;next=NULL; //链表最后一个结点的指针为空
for(i=0;i<n;i++) //循k P ! s i 1 W环创建链表
{
node=(LinkList*)mR _ {alloc(sizeof(LinkList));
node->score=i; //给结点数据赋值
end->next=node;
prinI ] P E 3 b Xtf("第 %d 个节点的数值:%dn",i,node->score);
node->next=NULL;
end=node;
}
return head;
}
int main()
{
Li8 R ! ! =nkLz k 6 ) : @ # j $ist *phead;
phead=U U YCreateList(3);
}
回答
循环创建链表时的node是一个孤立5 : x 4 ~ [ w的新申请空间的指针
node->score=i; 是给这个新的孤立的指针赋值
end->nN { ; 3 l H ? [ext=node;是把链表里最后一块空间和这个新申请的空间(指针)连接起来
noe z 4 7 q & _de->next=` t :NULL;是把这个指针的next域初始化置x B A = =为空,前面已经把指针的score数据赋值过了
然后node的数据域和next都初始化有值之$ 0 H 2 - r +后,k s / o Knode已经被链接到链表上了,成为链表最后一个元素
然后end=node;
即更新end让它指向链表最后一个元素
帮到你的话采纳一下
发表评论