class NetworkX::UnionFind

Public Class Methods

new(nodes) click to toggle source
# File lib/networkx/auxillary_functions/union_find.rb, line 3
def initialize(nodes)
  @unions = {}
  nodes.each_with_index do |node, index|
    @unions[node] = index
  end
end

Public Instance Methods

connected?(node_1, node_2) click to toggle source
# File lib/networkx/auxillary_functions/union_find.rb, line 10
def connected?(node_1, node_2)
  @unions[node_1] == @unions[node_2]
end
union(node_1, node_2) click to toggle source
# File lib/networkx/auxillary_functions/union_find.rb, line 14
def union(node_1, node_2)
  return if connected?(node_1, node_2)
  node1_id = @unions[node_1]
  node2_id = @unions[node_2]

  @unions.each do |node, id|
    @unions[node] = node1_id if id == node2_id
  end
end