{"action":"created","issue":{"url":"https://api.github.com/repos/bluss/petgraph/issues/37","repository_url":"https://api.github.com/repos/bluss/petgraph","labels_url":"https://api.github.com/repos/bluss/petgraph/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/bluss/petgraph/issues/37/comments","events_url":"https://api.github.com/repos/bluss/petgraph/issues/37/events","html_url":"https://github.com/bluss/petgraph/issues/37","id":119585935,"number":37,"title":"Add a versatile dfs visitor","user":{"login":"bluss","id":3209739,"avatar_url":"https://avatars.githubusercontent.com/u/3209739?v=3","gravatar_id":"","url":"https://api.github.com/users/bluss","html_url":"https://github.com/bluss","followers_url":"https://api.github.com/users/bluss/followers","following_url":"https://api.github.com/users/bluss/following{/other_user}","gists_url":"https://api.github.com/users/bluss/gists{/gist_id}","starred_url":"https://api.github.com/users/bluss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bluss/subscriptions","organizations_url":"https://api.github.com/users/bluss/orgs","repos_url":"https://api.github.com/users/bluss/repos","events_url":"https://api.github.com/users/bluss/events{/privacy}","received_events_url":"https://api.github.com/users/bluss/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bluss/petgraph/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/bluss/petgraph/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":10,"created_at":"2015-11-30T21:34:17Z","updated_at":"2016-10-03T01:11:42Z","closed_at":null,"body":"See also http://www.boost.org/doc/libs/1_59_0/libs/graph/doc/depth_first_search.html\r\n\r\n```\r\nDFS(G)                                      -                                     \r\n  for each vertex u in V                    -                                 \r\n    color[u] := WHITE                       initialize vertex u               \r\n    p[u] = u                                -                                 \r\n  end for                                   -                                 \r\n  time := 0                                 -                                 \r\n  if there is a starting vertex s           -                                 \r\n    call DFS-VISIT(G, s)                    start vertex s                    \r\n  for each vertex u in V                    -                                 \r\n    if color[u] = WHITE                     -                                 \r\n      call DFS-VISIT(G, u)                  start vertex u                    \r\n  end for                                   -                                 \r\n  return (p,d_time,f_time)                  -                                 \r\n                                            -                                 \r\nDFS-VISIT(G, u)                             -                                 \r\n  color[u] := GRAY                          discover vertex u                 \r\n  d_time[u] := time := time + 1             -                                 \r\n  for each v in Adj[u]                      examine edge (u,v)                \r\n    if (color[v] = WHITE)                   -                                 \r\n      p[v] = u                              (u,v) is a tree edge              \r\n      call DFS-VISIT(G, v)                  -                                 \r\n    else if (color[v] = GRAY)               -                                 \r\n      ...                                   (u,v) is a back edge              \r\n    else if (color[v] = BLACK)              -                                 \r\n      ...                                   (u,v) is a cross or forward edge  \r\n    ...                                     -                                 \r\n  end for                                   finish edge (u,v)                 \r\n  color[u] := BLACK                         -                                 \r\n  f_time[u] := time := time + 1             finish vertex u                   \r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/bluss/petgraph/issues/comments/251009245","html_url":"https://github.com/bluss/petgraph/issues/37#issuecomment-251009245","issue_url":"https://api.github.com/repos/bluss/petgraph/issues/37","id":251009245,"user":{"login":"bluss","id":3209739,"avatar_url":"https://avatars.githubusercontent.com/u/3209739?v=3","gravatar_id":"","url":"https://api.github.com/users/bluss","html_url":"https://github.com/bluss","followers_url":"https://api.github.com/users/bluss/followers","following_url":"https://api.github.com/users/bluss/following{/other_user}","gists_url":"https://api.github.com/users/bluss/gists{/gist_id}","starred_url":"https://api.github.com/users/bluss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bluss/subscriptions","organizations_url":"https://api.github.com/users/bluss/orgs","repos_url":"https://api.github.com/users/bluss/repos","events_url":"https://api.github.com/users/bluss/events{/privacy}","received_events_url":"https://api.github.com/users/bluss/received_events","type":"User","site_admin":false},"created_at":"2016-10-03T01:11:42Z","updated_at":"2016-10-03T01:11:42Z","body":"Approachable overview http://eli.thegreenplace.net/2015/directed-graph-traversal-orderings-and-applications-to-data-flow-analysis/"}}
{"actor":{"display_login":"bluss"}}