#include <stdio.h>
#include <stdlib.h>
struct stud_std{
int num;
int score;
char name[20];
struct stud_std *next;
};
struct stud_std *Creat_std() //单向链表的建立
{
struct stud_std *head,*tail,*p; //设表头、tail指向每个链表的数据域
head=tail=NULL;
p=(struct stud_std *)malloc(sizeof(struct stud_std));//申请动态存储地址
printf("请输入:学号,分数,姓名;输入0结束\n");
scanf("%d%d%s",&p->num,&p->score,p->name); //取地址运算符确实会发生错误;
tail=head=p; //让head和tail的初值都为p
while(p->num!=0) //p为零时结束
{
p->next=NULL; //每次让p的next域为NULL
tail->next=p; //让tail的next域指向下一个p
tail=p; //tail等于p
p=(struct stud_std *)malloc(sizeof(struct stud_std));
scanf("%d%d%s",&p->num,&p->score,p->name);
}
return head;
}
int main()
{
struct stud_std *head;
head=Creat_std();
return 0;
}
单向链表的建立
最新推荐文章于 2024-03-26 21:07:09 发布