kruscal算法实现

达到的


#include 
#include 
using namespace std;
int trank[100];
int n,m,U[100],V[100],W[100],R[100];
int A[100];
int par[100];
void make_set(int n)
{
	for(int i=1;i<=n;i++)
	{
		par[i]=i;
		trank[i]=0;
	}
}
/*int  find(int x)
{
	//return set[x]==x?x:set[x]=find(set[x]);
	if(set[x]==x) return x;
	else {set[x]=find(set[x]);return find(set[x]);}//这里有瑕疵,每次调次函数只更新一次set【】
}*/
int find(int x)
{
	return par[x]==x?x:par[x]=find(par[x]);
}
void Union(int x,int y)
{
	x=find(x);
	y=find(y);
	if(trank[x]>trank[y])
	{
		par[y]=x;//y为头目;x为集合名
	}
	else if(trank[x]






你可能感兴趣的:(ACM)