fix(graph): return ordered cycle path and add early exit in detectUndirectedCycle #2080
+66
−39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This fixes issue #2057 .
The
detectUndirectedCycle
function previously returned a vertex-to-parent mapping which was unintuitive and difficult to consume. This PR changes the function to return an ordered array of vertices forming the cycle (e.g.[A, B, C, A]
), with the first and last elements equal to clearly indicate the cycle closure.Changes
Checklist
npm run lint
passes (or auto-fixed)npm test
passesFixes #123