Method: NetworkX::Graph#each_dfs_preorder_node

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

#each_dfs_preorder_node(root) ⇒ Object

[EXPERIMENTAL]

Parameters:

  • root (Object)

    node which is root, start, source



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

def each_dfs_preorder_node(root)
  return enum_for(:each_dfs_preorder_node, root) unless block_given?

  st = [root]
  used = {root => true}
  while st[-1]
    node = st.pop
    yield(node)
    @adj[node].reverse_each do |v, _data|
      next if used[v]

      used[v] = node
      st << v
    end
  end
end