Functions and types for working with graphs
Graaf is Dutch for
- graph
- count
- dig
This crate is in alpha, and the API will change. See the changelog for a provisional roadmap.
Installation
Add the following to your Cargo.toml:
[]
= "0.18.0"
Usage
use ;
let mut graph = new;
graph.add_edge;
graph.add_edge;
graph.add_edge;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Overview
Algorithms
Common graph algorithms:
bfs: breadth-first search.dijkstra: Dijkstra's algorithmpredecessor: predecessor search
Operations
Graph operation traits and implementations:
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.
Features
AdjacencyMatrix
An adjacency matrix representation of unweighted directed graphs, stored as a bit array. This feature is enabled by default. To opt out, remove the adjacency_matrix feature from your Cargo.toml:
[]
= { = "0.18.0", = [] }