假设利用两个线性表La和Lb分别表示两个集合A和B,现要求一个新的集合A=AUB
依次取出Lb 中的每个元素,执行以下操作:在La中查找该元素,如果找不到,则将其插入La的最后
代码运行图
代码部分
#include<iostream>
using namespace std;
const int MaxSize = 100;
typedef struct{
int *data;
int length;
}SeqList;
void InitList(SeqList &L)
{
L.data = new int[MaxSize];
L.length=0;
}
void CreatList(SeqList &L)
{
int n;
cout<<"创建顺序表元素个数:" ;
cin>>n;
L.length = n;
for(int i=0;i<n;i++){
cin>>L.data[i];
}
}
void PrintList(SeqList L){
for(int i=0;i<L.length;i++)
{
cout<<L.data[i]<<" ";
}
cout<<endl;
}
void MergeList(SeqList &La,SeqList &Lb)
{
for(int i=0;i<Lb.length;i++)
{
int flag=1;
for(int j=0;j<La.length;j++)
{
if(Lb.data[i]==La.data[j])
{
flag=0;
}
}
if(flag==1){
La.data[La.length++]=Lb.data[i];
}
}
}
int main()
{
SeqList Lista,Listb;
InitList(Lista);
InitList(Listb);
cout<<"ListA:";
CreatList(Lista);
cout<<"ListB:";
CreatList(Listb);
cout<<"合并线性表:";
MergeList(Lista,Listb);
PrintList(Lista);
return 0;
}