struct Student{
int num;
char name[20];
struct Student *next;
};
int main(){
struct Student *create();
struct Student *delet(struct Student *ahead,struct Student *bhead);
void print(struct Student *ahead);
struct Student *ahead,*bhead;
ahead=create();
bhead=create();
ahead=delet(ahead,bhead);
print(ahead);
return 0;
}
struct Student *create(){
struct Student *p,*q,*head;
int n=0;
p=(struct Student*)malloc(sizeof(struct Student));
scanf("%d%s",&p->num,p->name);
while(p->num!=0){
n++;
if(n==1){
head=p;
}else{
q->next=p;
}
q=p;
p=(struct Student*)malloc(sizeof(struct Student));
scanf("%d%s",&p->num,p->name);
}
q->next=NULL;
return head;
}
struct Student *delet(struct Student *ahead,struct Student *bhead){
struct Student *p1,*q1,*p2;
p1=ahead;
p2=bhead;
while(p1!=NULL){
while(p2!=NULL){
if(p2->num==p1->num){
if(p1==ahead){
ahead=p1->next;
p1=ahead;
break;
}else{
q1->next=p1->next;
p1=ahead;
break;
}
}
p2=p2->next;
}
q1=p1;
p1=q1->next;
p2=bhead;
}
return ahead;
}
void print(struct Student *ahead){
struct Student *p=ahead;
do{
printf("%d%s\n",p->num,p->name);
p=p->next;
}while(p!=NULL);
}