1. 程式人生 > >兩個集合的相等判斷、交集、並集

兩個集合的相等判斷、交集、並集

#include<iostream>
using namespace std;
const int Size=10;
void Get(int a[]);
void Judge(int a[],int b[]);//判斷兩函式是否相等
void Intersaction(int a[],int b[]);//求交集	
void Union(int a[],int b[]);//求並集
void Get(int a[])
{
	cout<<"請十位輸入整數:";
	for(int i=0;i<Size;i++)
	{
		cin>>a[i];
		cout<<" ";
	}
}
void Judge(int a[Size],int b[Size])
{
	for(int i=0;i<Size;i++)
	{
		if(a[i]!=b[i]) cout<<"兩集合不等!"<<endl;break;
		if(i==Size-1) cout<<"兩集合相等!"<<endl;break;
	}
}
void Intersaction(int a[Size],int b[Size])
{
	int c[Size];
	int t=0;
	for(int i=0;i<Size;i++)
	{
		for(int n=0;n<Size;n++)
		{
			if(a[i]==b[n]) c[t]=b[n];t++;
		}
	}
	cout<<"兩集合的交集為:";
	for(t=0;t<Size;t++)
	{
		for(int m=0;m<Size;m++)
		{
			if(c[t]==c[m]||t!=m) break;
			if(c[t]==c[m]) cout<<c[m]<<" ";
		}
	}
}
void Union(int a[Size],int b [Size])
{
	int c[Size];
	int t=0;
	for(int i=0;i<Size;i++)
	{
		for(int n=0;n<Size;n++)
		{
			if(a[i]==b[n]) c[t]=b[n];t++;
		}
	}
	cout<<"兩集合的並集為:";
	for(t=0;t<Size;t++)
		cout<<a[t];
	for(t=0;t<Size;t++)
	{
		for(int m=0;m<Size;m++)
		{
			if(c[t]==c[m]) cout<<c[m]<<" ";
		}
	}
}
int main()
{
	int a[Size],b[Size];
	Get(a);
	cout<<endl;
	Get(b);
	Judge(a,b);
	Intersaction(a,b);
	Union(a,b);
	return 0;
}

		

實驗心得:判斷兩個集合是否相等,要從順序和資料入手,在這裡我僅敲了順序、資料一樣的集合判斷演算法,還望老師見諒!