Method: NetworkX::Graph#each_bfs_edge

Defined in:
lib/networkx/traversals/bfs.rb

#each_bfs_edge(node) ⇒ Object

[EXPERIMENTAL]

Parameters:

  • node (Object)

    which is root, start ,source



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/networkx/traversals/bfs.rb', line 91

def each_bfs_edge(node)
  return enum_for(:each_bfs_edge, node) unless block_given?

  que = [node]
  used = {node => true}
  while que[0]
    node = que.shift

    @adj[node].each do |v, _data|
      next if used[v]

      used[v] = true

      yield(node, v)
      que << v
    end
  end
end