实验11-2-2 学生成绩链表处理
struct stud_node *createlist()
{
int num;
struct stud_node *tail,*p,*head;
scanf("%d",&num);
head=tail=NULL;
while(num!=0)
{
p=(struct stud_node*)malloc(sizeof(struct stud_node));
p->num=num;
scanf(" %s %d",p->name,&p->score);
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&num);
}
return head;
}
struct stud_node *deletelist(struct stud_node *head, int min_score)
{
struct stud_node *ptr,*ptr1,*ptr2;
while(head!=NULL&&head->score<min_score)
{
ptr2=head;
head=head->next;
free(ptr2);
}
if(head==NULL)
return NULL;
ptr1=head;
ptr2=head->next;
while(ptr2!=NULL)
{
if(ptr2->score<min_score)
{
ptr1->next=ptr2->next;
free(ptr2);
}
else
ptr1=ptr2;
ptr2=ptr1->next;
}
return head;
}
改的课本上的代码,对链表代码理解还是云里雾里的