JavaScript
JavaScript copied to clipboard
[FEATURE]: Add Kahn's Algorithm in Graphs #1795
Describe your change:
- [x] Add an algorithm?
- [ ] Fix a bug or typo in an existing algorithm?
- [ ] Documentation change?
Algorithm added: Kahn's Algorithm (Topological Sort using BFS)
Motivation: Kahn's Algorithm is a canonical graph algorithm for topological sorting of Directed Acyclic Graphs (DAGs). It was missing in the repository.
Checklist:
- [x] I have read CONTRIBUTING.md.
- [x] This pull request is all my own work -- I have not plagiarized.
- [x] I know that pull requests will not be merged if they fail the automated tests.
- [x] This PR only changes one algorithm file (
KahnsAlgorithm.jsand its test).. To ease review, please open separate PRs for separate algorithms. - [x] All new JavaScript files are placed inside an existing directory.
- [x] All filenames should use the UpperCamelCase (PascalCase) style. There should be no spaces in filenames.
Example:
UserProfile.jsis allowed butuserprofile.js,Userprofile.js,user-Profile.js,userProfile.jsare not - [x] All new algorithms have a URL in their comments that points to Wikipedia or another similar explanation.
- [x] If this pull request resolves one or more open issues then the commit message contains
Fixes: #1795.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 85.93%. Comparing base (08d8c6b) to head (7d025a7).
Additional details and impacted files
@@ Coverage Diff @@
## master #1796 +/- ##
==========================================
+ Coverage 85.91% 85.93% +0.02%
==========================================
Files 379 380 +1
Lines 19778 19807 +29
Branches 3015 3026 +11
==========================================
+ Hits 16993 17022 +29
Misses 2785 2785
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.