第一个结点怎么删除?
ST *del(ST *trans_head2,int stu_num2)//函数功能:删除stu_num2所在的结点(目前第一个结点删除不了) trans_head2是传来的头指针{
ST *p1,*p2,*p3;
p3=trans_head2;
p2=trans_head2;
p1=trans_head2;
if(trans_head2==NULL)
{
printf("无数据!");
}
else
{
while((p1->stu_num!=stu_num2)&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p1->stu_num==stu_num2)
{
p2->next=p1->next;
}
}
free(p1);
while(p3)//这步只是用来检测删除的效果
{
printf("%d %d %d %d\n",p3->stu_num,p3->grade_math,p3->grade_english,p3->grade_physics);
p3=p3->next;
}
return trans_head2;
}