并查集的实现查询图中有多少个连通分支

【并查集的实现查询图中有多少个连通分支】所谓并查集算法,涉及到两个操作,一是寻找到祖先节点(我们可以定义数组parent[i]=i满足时,i为祖先节点),而是合并连通分支

import java.util.HashMap; import java.util.HashSet; public class UnionSet { public static void main(String[] args) {} int []parent; int r=0; //寻找祖先节点 public int find(int n){ while(n!=parent[n]){ parent[n]=parent[parent[n]]; n=parent[n]; } return n; } //合并两个连通分支 public void union(int u,int v){ int pu=find(u); int pv=find(v); if(pu==pv){ return; } r++; parent[pu]=pv; }public int findCircleNum(int[][] M){ int n=M.length; parent=new int [n]; //初始化祖先节点 for(int i=0; i

    推荐阅读