算法之不相交集合森林
来源:互联网 发布:淘宝创建宝贝 编辑:程序博客网 时间:2024/04/29 11:52
- package com.eshore.sweetop.exdataframe;
- public class DisjointSetForest {
-
- public void makeSet(DisjointSetNode node){
- node.setParent(node);
- node.setRank(0);
- }
-
- public void link(DisjointSetNode nodex,DisjointSetNode nodey){
- if(nodex.getRank()>nodey.getRank()){
- nodey.setParent(nodex);
- }else{
- nodex.setParent(nodey);
- if(nodex.getRank()==nodey.getRank()){
- nodey.setRank(nodey.getRank()+1);
- }
- }
- }
-
- public void union(DisjointSetNode nodex,DisjointSetNode nodey){
- link(findSet(nodex),findSet(nodey));
- }
-
- public DisjointSetNode findSet(DisjointSetNode nodex){
- if(nodex!=nodex.getParent()){
- nodex.setParent(findSet(nodex.getParent()));
- }
- return nodex.getParent();
- }
- }