-
Notifications
You must be signed in to change notification settings - Fork 120
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
introduce tarjan's algorithm (#103) #322
Conversation
This work is not done yet as I've been too busy recently writing test cases and making sure my submission is bug-free. I opened this PR not wanting this submission to be merged now, but to share my progress with you guys @ZigRazor. Testing work and bug fixes are expected to be finished in the next few weeks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cppcheck (reported by Codacy) found more than 10 potential problems in the proposed changes. Check the Files changed tab for more details.
Codecov Report
@@ Coverage Diff @@
## master #322 +/- ##
==========================================
+ Coverage 97.23% 97.26% +0.03%
==========================================
Files 54 55 +1
Lines 7907 8313 +406
==========================================
+ Hits 7688 8086 +398
- Misses 219 227 +8
Flags with carried forward coverage won't be shown. Click here to find out more.
|
* implement tarjan's algorithm to find sccs for directed graphs * implement tarjan's algorithm to find cut vertices/bridges/vdcc/edcc for undirected graphs * formatting
Ok @suncanghuai I convert this to draft PR until it will be completed |
* add test cases for Tarjan's algorithm for finding sccs * fix bugs of Tarjan's algorithm for finding sccs
* add test cases for Tarjan's algorithm for finding cut-vertices/bridges/vbccs/ebccs * fix a bug of Tarjan's algorithm for finding vbccs * remove printf statements from TarjanTest.cpp
@ZigRazor, Tarjan's algorithm was fully tested. I think it's time to merge it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work!
There might be different purposes of Tarjan's algorithm, but the basic framework and core idea of it are the same. So I implemented a common function for Tarjan's algorithm which return different results based on the input parameter instead of multiple slightly modified versions of that.