core :: union_find
union–find algorithm using an efficient disjoint-set data structure
# Example from http://www.graphviz.org/Gallery/undirected/fdpclust.html
module undirected_clusters is example
import dot
var graph = new DotGraph("G", "graph")
var a = new DotNode("a")
var b = new DotNode("b")
var c = new DotNode("c")
var d = new DotNode("d")
var e = new DotNode("e")
var f = new DotNode("f")
var g = new DotNode("g")
var clA = new DotGraph("clusterA", "subgraph")
clA.add_edge(a, b).directed = false
graph.add clA
var clB = new DotGraph("clusterB", "subgraph")
clB.add_edge(c, d).directed = false
clA.add clB
var clC = new DotGraph("clusterC", "subgraph")
clC.add_edge(e, g).directed = false
graph.add clC
graph.add_edge(e, d).directed = false
graph.add_edge(f, g).directed = false
if args.is_empty then
print graph.to_dot
else
graph.to_dot.write_to_file args.first
end
lib/dot/examples/undirected_clusters.nit:15,1--49,3