int main() //头插法创建链表
{ struct student *head,*p1;
int i;
head=(struct student *)malloc(sizeof(struct student));//应注意,没有申请空间(或初始化)的head指针,没有指向一块内存空间,不能直接存放数据
head->next=NULL;
p1=head;//让p1指向head的原因:初始化p1
p1->next=NULL;//这样能使链表的最后一个节点的指针域为NULL
for(i=0;i<5;i++)
{
p1=(struct student *)malloc(sizeof(struct student));
if(!p1)
{printf("分配失败");
return 0;
}
else{
printf("请输入学生的姓名:\n");
scanf("%s",&p1->name);
printf("请输入学生的学号");
scanf("%d",&p1->number);
p1->next=head->next;//新插入的节点永远在head节点之后
head->next=p1;
}
}
p1=head->next;
while(p1)
{
printf("姓名:%s \n",p1->name);
printf("学号:%d \n",p1->number);
p1=p1->next;
}
return 0;
}
头插法创建单链表
最新推荐文章于 2024-06-25 07:11:52 发布