Please Visit: http://ift.tt/1ajReyV
from Public RSS-Feed of Jeffery yuan. Created with the PIXELMECHANICS 'GPlusRSS-Webtool' at http://gplusrss.com http://ift.tt/1lOrEHo
via LifeLong Community
Union-Find Algorithm | Set 1 (Detect Cycle in a an Undirected Graph) | GeeksforGeeks
int find(int parent[], int i){ if (parent[i] ==1) return i; return find(parent, parent[i]);} // A utility function to do union of two subsets void Union(int parent[], int x, int y){ int xset = find(parent, x); int yset = find(parent, y); parent[xset] = yset;} // The main function to check whether a given graph contains cycle or notint isCycle( struct Graph* graph ){ // Allocate memory for creating V subsets int parent = (int ) malloc( graph>V * sizeof(int) ); // Initialize all subsets as single element sets memset(parent, 1, sizeof(int) * graph>V); // Iterate through all edges of graph, find subset of both // vertices of every edge, if both subsets are same, then there is // cycle in graph. for(int i = 0; i < graph->E; ++i) { int x = find(parent, graph->edge[i].src); int y = find(parent, graph->edge[i].dest); if (x == y) return 1; Union(parent, x, y); } return 0;}
http://ift.tt/1lOrEHl
http://ift.tt/UkFhIR
int find(int parent[], int i){ if (parent[i] ==
http://ift.tt/1lOrEHl
http://ift.tt/UkFhIR
from Public RSS-Feed of Jeffery yuan. Created with the PIXELMECHANICS 'GPlusRSS-Webtool' at http://gplusrss.com http://ift.tt/1lOrEHo
via LifeLong Community
No comments:
Post a Comment