-
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 <suncanghuai@gmail.com> * 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 <suncanghuai@hesaitech.com> * 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 <suncanghuai@gmail.com> * 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 <noreply@github.com> * Add partition Example ( HDRF ) Signed-off-by: GitHub <noreply@github.com> * Corrected Partition Class Fix #263 Signed-off-by: GitHub <noreply@github.com> * Update Readme for Roadmap Signed-off-by: GitHub <noreply@github.com> * Corrected Cmake for old Example Signed-off-by: GitHub <noreply@github.com> * Update cmake.yml * Update benchmark_pr.yml * Update benchmark.yml * Update Code_Coverage.yml * Correction for Graph.hpp Signed-off-by: GitHub <noreply@github.com> * 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 <noreply@github.com> * 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 <noreply@github.com> Co-authored-by: ARockHammer <37604654+SunCangHuai@users.noreply.github.com> Co-authored-by: suncanghuai <suncanghuai@gmail.com> Co-authored-by: David Chocholatý <chocholaty.david@protonmail.com> Co-authored-by: suncanghuai <suncanghuai@hesaitech.com> Co-authored-by: codesee-maps[bot] <86324825+codesee-maps[bot]@users.noreply.github.com> Co-authored-by: Pradeep Krishnamurthy <pradkrish84@gmail.com> Co-authored-by: David Sapienza <david.sapienza@protonmail.com>
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.