當前位置:成語大全網 - 新華字典 - 用c語言給定兩個整數集合 a,b. 分別編寫函數求這兩個集合的並集(剔除重復元

用c語言給定兩個整數集合 a,b. 分別編寫函數求這兩個集合的並集(剔除重復元

#include<iostream>

using?namespace?std;

class?MergeList

{

int?*a;

int?size;

public:

MergeList(int?size,int?init)

{

this->size=size;

a=new?int[size];

for(int?i=0;i<size;i++)

{

a[i]=init;

}

}

MergeList()

{

}

MergeList(const?MergeList&obj)

{

this->size=obj.size;

a=new?int[size];

for(int?i=0;i<size;i++)

a[i]=obj.a[i];

}

void?SetData(int&index,?int&data)

{

a[index]=data;

}

int&GetSize(){return?size;}

~MergeList()

{

delete?[]a;

}

MergeList&operator=(const?MergeList&obj)

{

this->size=obj.size;

a=new?int[size];

for(int?i=0;i<size;i++)

a[i]=obj.a[i];

return?*this;

}

bool?Is_Same(int?&element);

MergeList?AddList(const?MergeList&obj);

void?Show()

{

for(int?i=0;i<size;i++)

cout<<a[i]<<"?";

cout<<endl;

}

};

bool?MergeList::Is_Same(int?&element)

{

for(int?i=0;i<size;i++)

{

if(a[i]==element)

return?true;

}

return?false;

}

MergeList?MergeList::AddList(const?MergeList&obj)

{

MergeList?C;

?int?m=0,i=0;

?C.size=size+obj.size;

?C.a=new?int[C.size];

?if(size<obj.size||(size==obj.size))

?{

?for(i=0;i<size;i++)

?{

?C.a[i]=a[i];

?}

?}

?else

?{

?for(i=0;i<obj.size;i++)

?{

?C.a[i]=obj.a[i];

?}

?}

for(int?j=0;j<obj.size;j++)

{

if(!this->Is_Same(obj.a[j]))

{

C.a[i+m]=obj.a[j];

m++;

}

}

C.size=i+m;

return?C;

}

int?main()

{

int?LengthA,LengthB;

cout<<"input?length?a:";

cin>>LengthA;

cout<<"input?length?b:";

cin>>LengthB;

MergeList?A(LengthA,2),B(LengthB,2),C;

cout<<"input?A:"<<endl;

for(int?i=0;i<A.GetSize();i++)

{

int?a;

cin>>a;

A.SetData(i,a);

}

cout<<"input?B:"<<endl;

for(int?j=0;j<B.GetSize();j++)

{

int?b;

cin>>b;

B.SetData(j,b);

}

C=A.AddList(B);

cout<<"合並後:"<<endl;

C.Show();

}