Open danielyxyang opened 6 days ago
Thanks for the detailed explanation, proposed solution and references to existing issues/PRs. An exemplary issue!
Now if you can just codify your example here (without all the strings) as a unit test, the proposed solution will be perfect. :)
Thanks!
Minimal working example
Code
```c++ #includeExample Graph
Actual output:
Expected output:
Problem
The problem is that in
undirected_dfs.hpp:61
the following invariant for the entriesVertexInfo& back = (u, (src_e, out_e))
in thestack
is established:u
: vertexsrc_e
: edge used to discover vertexu
(i.e.u
is the target ofsrc_e
)out_e
: set of edges adjacent tou
not yet examinedHowever,
undirected_dfs.hpp:82
violates this invariant by pointingsrc_e
to the next edge*ei = (u, v)
in the previous line 81 (i.e.u
is the source vertex) and then pushes(u, (src_e, out_e))
onto the stack, which corresponds to:Solution
See pull request #390
Related issues
Issue related to #222 and pull request #129, but the solution proposed there does not properly establish the described invariant.