typedef struct Node{ int num;
bool flag;
//判断是不是交集中的数据 struct Node *next;
};
typedef struct Node* Set;
Set buildSet(){ Set head,ptr,qtr;
int count;
//集合元素个数 head=new Node();
ptr=head;
cout<<"请输入集合中的元素个数:";
cin>>count;
cout<<"请输入集合中的元素:"<
qtr=new Node();
cin>>qtr->num;
qtr->flag=false;
qtr->next=NULL;
ptr->next=qtr;
ptr=ptr->next;
count--;
} ptr=head->next;
delete head;
head qtr=NULL;
return ptr;
} void findCoet set1,Set set2)//循环集合set1,在set2找是否相同 { Set ptr=set1,qtr=set2;
if(set1!
=NULL&&set2!
=NULL) {
wh=NULL){
qtr=set2;
while(qtr!
=NULL)
{
if(qtr->num==ptr->num){
ptr->flag=tru
break;
}
qtr=qtr->next;
}
ptr=ptr->next;
} } } void printSet(Set set){ Set ptr=set;
cout<<"该集合的元素如 while(ptr!
=NULL){
cout<
ptr=ptr->next;
} co } void printCommonD Set ptr=set;
cout<<"集合的共同元素如下: ";
while
if(ptr->flag==true)cout<
ptr=ptr->next;
}
cout<
while(ptr!
=NULL) {
qtr=ptr;
ptr=ptr->next;
delete qtr;
} } int main() { Set set1,set2;
set1=buildSet();
set2=buildSe
findCommonData(set1,set2);
printSet(set1);
printSet(set2);
freeSet(set2);
printCommonData(set1);
} 内容来自网友回答
交集及其运算