Spaces:
Sleeping
Sleeping
| # `@rtsao/scc` | |
| Find strongly connected components of a directed graph using [Tarjan's algorithm](https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm). | |
| This algorithm efficiently yields both a topological order and list of any cycles. | |
| ## Installation | |
| ``` | |
| yarn add @rtsao/scc | |
| ``` | |
| ``` | |
| npm install @rtsao/scc | |
| ``` | |
| ## Usage | |
| ```js | |
| const scc = require("@rtsao/scc"); | |
| const digraph = new Map([ | |
| ["a", new Set(["c", "d"])], | |
| ["b", new Set(["a"])], | |
| ["c", new Set(["b"])], | |
| ["d", new Set(["e"])], | |
| ["e", new Set()] | |
| ]); | |
| const components = scc(digraph); | |
| // [ Set { 'e' }, Set { 'd' }, Set { 'b', 'c', 'a' } ] | |
| ``` | |
| #### Illustration of example input digraph | |
| ``` | |
| βββββ βββββ | |
| β d β βββ β a β ββ | |
| βββββ βββββ β | |
| β β β | |
| βΌ βΌ β | |
| βββββ βββββ β | |
| β e β β c β β | |
| βββββ βββββ β | |
| β β | |
| βΌ β | |
| βββββ β | |
| β b β ββ | |
| βββββ | |
| ``` | |