<span style="font-family:SimSun;font-size:10px;">#include<stdio.h></span>
<span style="font-family:SimSun;font-size:10px;">#define MAXVEX 100</span>
int id[MAXVEX];
int N;
void create_array(int n)
{
int i;
//初始化id集合
for( i=0;i<n;++i)
{
id[i]=i;
}
}
void quick_union(int p,int q)
{
int i;
int pid=id[p];
int qid=id[q];
for(i=0; i<N; i++)
{
if(id[i] == pid)
id[i] = qid;
}
}
int connected(int p,int q)
{
return id[p] == id[q];
}
void display(int N)
{
int i;
for(i=0;i<N;++i)
printf("id[%d]:%d \n",i,id[i]);
}
void main()
{
N=10;
create_array(N);
quick_union(0,1);
quick_union(8,9);
quick_union(4,5);
quick_union(5,1);
display(10);
if(connected(3,4))
printf("id[3] is connected to id[4]\n");
else
printf("id[3] isn't connected to id[4]\n");
if(connected(4,5))
printf("id[4] is connected to id[5]\n");
else
printf("not connected\n");
}