Report a bug
If you spot a problem with this page, click here to create a Github issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

mir.graph

Basic routines to work with graphs.
Authors:
Ilya Yaroshenko
template GraphIterator(I)
template Graph(I)
template GraphSeries(T, I)
GraphSeries!(T, uint) graphSeries(T, Range)(in Range[T] aaGraph);

Param aaGraph = graph that is represented as associative array

Returns:
A graph series composed of keys (sorted .index) and arrays of indeces (.data)

Complexity O(log(V) (V + E))

Examples:
auto gs = [
    "b" : ["a"],
    "a" : ["b", "c"],
    "c" : ["b"],
].graphSeries;

assert (gs.index == ["a", "b", "c"]); // sorted
assert (gs.data == [
    [1, 2], // a
    [0],    // b
    [1],    // c
]);