-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved return type for Kosaraju's algoritm + tests #260
Conversation
👇 Click on the image for a new way to code review
Legend |
I think I made some mistakes when merging to keep my fork updated, sorry EDIT: Should be fixed now |
Good Work @dvd2000 ! |
Glad I could contribute. I'm still not completely convinced about the return type though. Specifically:
|
I think we can close this PR, and then rework it in a secondary issue.
On the fact that we can return the pointer, i'm not sure is the correct way, the result can be modified and should not impact the original graph.
This second opportuniy can be evalueted in a new issue, maybe an |
* introduce topological sort for graph (#247) * implement topological sort based on dfs * add benchmark for topological sort * add basic test for topological sort Co-authored-by: suncanghuai <[email protected]> * Fix typo in link specification (#248) This PR removes an additional space character between link text and link URL, which caused faulty formatting of the README.md file. * introduce WeightBalancedLibra algorithm(vertex-cut graph partition) (#249) * implement WeightBalancedLibra algorithm based on paper pseudocode * add weight-related apis for class CoordinatedPartitionState * adjust set operations of class CoordinatedRecord * append a testcase in PartitionTest.cpp for WB-Libra Co-authored-by: suncanghuai <[email protected]> * Update README.md * Update README.md * Install the CodeSee workflow. Learn more at https://docs.codesee.io (#250) Co-authored-by: codesee-maps[bot] <86324825+codesee-maps[bot]@users.noreply.github.com> * * implement multi-thread bfs (#252) * add testcases for multi-thread bfs(in BFSTest.cpp) * add benchmark for multi-thread bfs(in BFS_BM.cpp) Co-authored-by: suncanghuai <[email protected]> * Update Readme Roadmap * Implement best first search (#254) * first implementation and tests * add docs and minor changes * minor change * minor change * Update README.md * Update README.md * Include best first search test (#258) * Update README for best first search algorithm (#257) * Update README for best first search algorithm * minor change * minor change * minor review changes * Implement kahn's algorithm for topological sorting (#259) * Improved return type for Kosaraju's algoritm + tests (#260) * custom return type for kosaraju() * Tests for Kosaraju's algorithm * fixed minor issues * fixed merge issue * Update Road Map * Update README.md * Reworked Cmake Signed-off-by: GitHub <[email protected]> * Add partition Example ( HDRF ) Signed-off-by: GitHub <[email protected]> * Corrected Partition Class Fix #263 Signed-off-by: GitHub <[email protected]> * Update Readme for Roadmap Signed-off-by: GitHub <[email protected]> * Corrected Cmake for old Example Signed-off-by: GitHub <[email protected]> * Update cmake.yml * Update benchmark_pr.yml * Update benchmark.yml * Update Code_Coverage.yml * Correction for Graph.hpp Signed-off-by: GitHub <[email protected]> * Update Code_Coverage.yml Parallel compilation * Update benchmark.yml parallel compilation * Update benchmark_pr.yml parallel compilation * Update cmake.yml parallel compilation * Update codeql-analysis.yml remove useless steps: - manually installed google test and benchmark * Create .github/workflows/super-linter.yml Added Super-Linter * Update super-linter.yml * Create .clang-format * Reformatted Files with clang-format with syle "Google" Signed-off-by: GitHub <[email protected]> * Delete super-linter.yml * Create .github/workflows/codeql.yml * Delete codeql-analysis.yml * Update README.md * Create .github/workflows/codacy.yml * Create .github/workflows/snyk-security.yml * Update snyk-security.yml * Delete snyk-security.yml --------- Signed-off-by: GitHub <[email protected]> Co-authored-by: ARockHammer <[email protected]> Co-authored-by: suncanghuai <[email protected]> Co-authored-by: David Chocholatý <[email protected]> Co-authored-by: suncanghuai <[email protected]> Co-authored-by: codesee-maps[bot] <86324825+codesee-maps[bot]@users.noreply.github.com> Co-authored-by: Pradeep Krishnamurthy <[email protected]> Co-authored-by: David Sapienza <[email protected]>
I implemented the changes discussed in #251 concerning the return type of Kosaraju's algorithm (I hope this correspond to what you had in mind) and written a few tests for it (#221).
For the return type, I introduced a SCCResult type (Strongly Connected Components Result), similar to what has been done for other algorithms in the library. Let me know if I can improve my PR in some way.