集合问题,求组大神!
#include<iostream>using namespace std;
struct Node
{
int data;
Node *next;
};
class LinkList
{
public:
LinkList(int a[],int n);
void Interest(LinkList s1,LinkList s2);
void printlist();
private:
Node*first;
};
LinkList::LinkList(int a[],int n)
{
first=new Node;
Node *r=first;
first->next=NULL;
for(int i=0;i<n;i++)
{
Node *s=new Node;
s->data=a[i];
s->next=first->next;
first->next=s;
}
}
void LinkList::Interest(LinkList s1,LinkList s2)
{
Node *pre=s1.first;
Node *p=pre->next;
Node *q=s2.first->next;
while(p&&q)
{
if (p->data<q->data){
pre->next=p->next;
p=pre->next;
}
else if (p->data>q->data){ q=q->next;}
else {pre=p;
p=p->next;
q=q->next;
}
}
}
void LinkList::printlist()
{
Node *p=first->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
}
int main()
{
int a[20],b[20];
int m,n;
cout<<"输入数组a元素的个数:";
cin>>m;
cout<<"请输入数组a元素"<<" ";
for(int i=0;i<m;i++)
cin>>a[i];
cout<<"输入数组b元素的个数:";
cin>>n;
cout<<"请输入数组b元素"<<" ";
for(int j=0;j<n;j++)
cin>>b[j];
LinkList list1(a,m);
LinkList list2(b,n);
list1.Interest(list1,list2);
list1.printlist();
cout<<endl;
return 0;
}
请问我这个为什么交集算不了 打印不出来 我也不知道什么回事。。。