/** * The union of two sets * * @param y */ public void union(DisjointSet y) { DisjointSet xRoot = find(); DisjointSet yRoot = y.find(); if (xRoot.getRank() > yRoot.getRank()) { yRoot.setParent(xRoot); } else if (yRoot.getRank() > xRoot.getRank()) { xRoot.setParent(yRoot); } else if (xRoot != yRoot) { yRoot.setParent(xRoot); xRoot.incrementRank(); } }