graphs 2.3.2 copy "graphs: ^2.3.2" to clipboard
graphs: ^2.3.2 copied to clipboard

Graph algorithms that operate on graphs in any representation.

CI pub package package publisher

Graph algorithms that do not specify a particular approach for representing a Graph.

Functions in this package will take arguments that provide the mechanism for traversing the graph. For example two common approaches for representing a graph:

class Graph {
  Map<Node, List<Node>> nodes;
}
class Node {
  // Interesting data
}
class Graph {
  Node root;
}
class Node {
  List<Node> edges;
  // Interesting data
}

Any representation can be adapted to the needs of the algorithm:

  • Some algorithms need to associate data with each node in the graph. If the node type T does not correctly or efficiently implement hashCode or ==, you may provide optional equals and/or hashCode functions are parameters.
  • Algorithms which need to traverse the graph take a edges function which provides the reachable nodes.
    • (node) => graph[node]
    • (node) => node.edges

Graphs that are resolved asynchronously will have similar functions which return FutureOr.

112
likes
160
points
4.56M
downloads

Publisher

verified publishertools.dart.dev

Weekly Downloads

Graph algorithms that operate on graphs in any representation.

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

collection

More

Packages that depend on graphs