Functions and types for working with graphs
Graaf is Dutch for
- graph
- count
- dig
This crate is in alpha, and the API will change.
Installation
Add the following to your Cargo.toml:
[]
= "0.17.1"
Usage
use ;
let mut adj = new;
adj.add_edge;
adj.add_edge;
adj.add_edge;
adj.add_edge;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Features
Algorithms: algo
Breadth-first search: bfs
Dijkstra's algorithm: dijkstra
Operations: op
Graph operations are modeled as traits. These traits are implemented for various graph representations built from standard library containers.
AddEdgeadds an unweighted edge.AddWeightedEdgeadds a weighted edge.CountAllEdgescounts all edges.CountAllVerticescounts all vertices.EdgeWeightgets the weight of an edge.Indegreereturns the indegree of a vertex.IsEdgereturns whether an edge exists.IsSimplereturns whether a graph is simple.IterAllEdgesiterates over all unweighted edges.IterAllWeightedEdgesiterates over all weighted edges.IterEdgesiterates over all unweighted edges of a source vertex.IterVerticesiterates over all vertices.IterWeightedEdgesiterates over all weighted edges of a source vertex.Outdegreereturns the outdegree of a vertex.RemoveEdgeremoves an edge.
Custom representations: repr
Beyond representations built from standard library collections, Graaf offers the following custom representations:
AdjacencyMatrix: an adjacency matrix representation of an unweighted directed graph stored as a bit array.