Method: NetworkX::Graph#each_bfs_node
- Defined in:
- lib/networkx/traversals/bfs.rb
#each_bfs_node(root) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/networkx/traversals/bfs.rb', line 64 def each_bfs_node(root) return enum_for(:each_bfs_node, root) unless block_given? queue = [root] dist = {root => 0} while (v = queue.shift) yield v d = dist[v] @adj[v].each do |u, _data| next if dist[u] dist[u] = d + 1 queue << u end end end |