画一下流程图讲讲具体思路,这个没太看懂

#include
class Union{
private:
intset1,len1;
int
set2,len2;
int set[20],len;
public:
Union(ints1,int l1,ints2,int l2)
{
set1=new int[l1];
int i;
for(i=0;i
set1[i]=s1[i];
len1=l1;
set2=new int[l2];
for(i=0;i
set2[i]=s2[i];
len2=l2;
len=0;
}
int f(int num)//判断整数num是否属于集合1,是返回1,否则返回0;
{
for(int i=0;i
{
if(set1[i]==num) return 1;
}
return 0;
}
void fun();
void show();
};
void Union::fun()//求集合1和集合2的并集;
{
for(int i=0;i
set[len++]=set1[i];//先把集合1中的所有元素复制给并集;
for(i=0;i
{
if(f(set2[i])==0)//然后调用f函数把集合2中不属于集合1的元素复制给并集;
set[len++]=set2[i];
}
}
void Union::show()
{
cout<<"集合1:"<
for(int i=0;i
cout<
cout<
cout<<"集合2"<
for(i=0;i
cout<
cout<
cout<<"并集"<
for(i=0;i
cout<
cout<
}
void main()
{
int s1[]={1,2,3,4,5,6,7,8},s2[]={1,3,5,7,9,11};
Union obj(s1,8,s2,6);
obj.fun();
obj.show();
}

Union构造函数定义了两个数组,将传入的数据存储到类的数组中
fun函数中 ,
for(int i=0;i<len1;i++)
set[len++]=set1[i];
set是用来存储合并后数组的,len代表合并后的长度。这个循环只是将第一个数组数据加入合并后数组,没什么难点
=======
int f(int num) 这个函数是用来判断某个整数是否在第一个数组中,其目的是用于将第二个数组加入第一个数组时,判断数值是否已经出现的检查函数,一个循环就搞定了,找到就返回1,否则返回0
=======
for(i=0;i<len2;i++)
{
if(f(set2[i])==0)//然后调用f函数把集合2中不属于集合1的元素复制给并集;
set[len++]=set2[i];
}
这个就是调用上面的f函数,逐个检查第二个数组中的数值是否在第一个数组中出现,如果未出现,就加入合并数组中
=======

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632