Method: NetworkX::Graph.balanced_tree

Defined in:
lib/networkx/others/generators.rb

.balanced_tree(r, h) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/networkx/others/generators.rb', line 18

def self.balanced_tree(r, h)
  edges = []
  q = [0]
  i = 0
  h.times do
    t = q.dup
    q.clear
    t.each do |v|
      r.times do
        i += 1
        edges << [v, i]
        q << i
      end
    end
  end
  graph = new(name: "balanced_tree(#{r}, #{h})")
  graph.add_edges(edges)
  graph
end