Method: NetworkX::Graph#each_dfs_preorder_node
- Defined in:
- lib/networkx/traversals/dfs.rb
#each_dfs_preorder_node(root) ⇒ Object
[EXPERIMENTAL]
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 |