数据结构 顺序表A,B表示两个集合,求A,B的交集C,求高手指点啊,急!!!

发布网友 发布时间:9小时前

我来回答

1个回答

热心网友 时间:9小时前

链表行吗?我刚写不久的
//求交集[2013.3.16]
#include <iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}LinkListNode,*LinkList;
void Init(LinkList &head)
{
head=(LinkListNode *)malloc(sizeof(LinkListNode));
head->next=NULL;
}
LinkList Create(LinkList &head,int n)
{
int num;
LinkList p,tail;
tail=head;
for (int i=0;i<n;i++)
{
p=(LinkListNode *)malloc(sizeof(LinkListNode));
cin>>num;
p->data=num;
tail->next=p;
tail=p;
tail->next=NULL;
}
return head;
}
void Print(LinkList head)
{
LinkList p=head->next;
while (p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
void Jiaoji(LinkList LA,LinkList LB,LinkList &LC)//交集
{
LinkList la,lb,lc;
la=LA->next;
lc=LC;
while (la!=NULL)
{
lb=LB->next;
while (lb!=NULL)
{
if (la->data == lb->data)
{
lc->next=la;
lc=lc->next;
}
lb=lb->next;
}
la=la->next;
}
lc->next=NULL;
}
void main()
{
LinkList a,b,c;
int n1,n2;
Init(a);
Init(b);
Init(c);
cout<<"请输入A元素个数:";
cin>>n1;
cout<<"请输入B元素个数:";
cin>>n2;
cout<<"请输入A集合元素:";
a=Create(a,n1);
cout<<"请输入B集合元素:";
b=Create(b,n2);
Print(a);
Print(b);
cout<<"交集C为:";
Jiaoji(a,b,c);
Print(c);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com