#include <stdio.h>
#include
using namespace std;
#define VERTICES 6
void ini(int parent[]){//初始化
int i;
for(i=0;i<VERTICES;i++){
parent[i]=-1;
}
}
int findroot(int x,int parent[]){//查找
int xroot=x;
while(parent[xroot]!=-1){
xroot=parent[xroot];
}
return xroot;
}
int unionn(int x,int y,int parent[]){//合并
int xroot=findroot(x,parent);
int yroot=findroot(y,parent);
if(xroot==yroot)
return 0;//合并失败
else{
parent[xroot]=yroot;
return 1;//合并成功
}
}
int main(){
int parent[VERTICES]={0};
int e[6][2]={
{0,1},{1,2},{1,3},
{2,4},{3,4},{2,5},
};
ini(parent);
int i;
for(i=0;i<5;i++)
{
int x=e[i][0];
int y=e[i][1];
if(unionn(x,y,parent)==0){
printf(“Cycle\n”);
exit(0);
}
}
printf(“no cycle\n”);
return 0;
}