#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}node;
void creat(node *head,int n);
void ldelete(node *head,int n);
void Lprint(node *head);
int main(){
node *a=(node*)malloc(sizeof(node));//头指针指向创建的头节点
a->next=NULL;
node *b=(node*)malloc(sizeof(node));//头指针指向创建的头节点
b->next=NULL;
node *c=(node*)malloc(sizeof(node));//头指针指向创建的头节点
c->next=NULL;
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
creat(a,x);
creat(b,y);
creat(c,z);
node *o,*p,*q;
o=a->next;p=b->next;q=c->next;
int i,j,k;
for(i=0;i<x&&o!=NULL;i++){
p=b->next;
for(j=0;j<y&&p!=NULL;j++){
if(o->data==p->data){
q=c->next;
for(k=0;k<z&&q!=NULL;k++){
if(o->data==q->data){
ldelete(a,i+1);
o=o->next;
break;
}
q=q->next;
}
}
p=p->next;
}
if(p==NULL){
o=o->next;
}
}
Lprint(a);
return 0;
}
void creat(node *head,int n){
node *p=head;//一个新指针指向头节点
int i;
for(i=0;i<n;i++){
int c;
scanf("%d",&c);
node *t=(node*)malloc(sizeof(node));//新节点
t->data=c;
p->next=t;
t->next=NULL;
p=t;//尾插法
//头插法:t->next=head->next;head->next=t;头节点不存放数据在头节点后插入数据
}
}
void ldelete(node *head,int n){
node *pre,*t;
int k=0;
pre=head;
for(k=0;k<n-1;k++){
pre=pre->next;
}
t=pre->next;
pre->next=t->next;
}
void Lprint(node *head){
node *p;
p=head->next;
while(p!=NULL){
printf("%d",p->data);
printf(" ");
p=p->next;
}
}
【无标题】
最新推荐文章于 2024-10-16 07:16:00 发布