Expand description
Universidad Panamericana, Mexico City. Facultad de Ingeniería.
Daniel Alejandro Osornio López (0244685@up.edu.mx), Daniel Hernandez Toledo (0243179@up.edu.mx)
A graph is a collection of nodes and edges.
This is a wrapper around the petgraph crate.
It provides a set of methods to manipulate the graph.
It also provides a set of macros to create graphs with ease.
The graph is generic over the following types:
I: The type of the node identifierN: The type of the node dataE: The type of the edge dataTy: The type of the edgeIx: The type of the index
petgraph uses an adjacency list to represent the graph.
The traversal algorithms are implemented in the walkers module.
The walkers are state machines that implement the Walker<T> trait
that provides the step method to move the walker to the next node
in the graph according to the algorithm.
All solutions are represented as a singly linked list of Step<T, Ix> instances.
The rrand module provides a set of random graph generators.
Re-exports
Modules
- Random number generator based on the
getrandomcrate. You may want to take a look at: - Implementation of the
Stepstruct for traversal representation. - Implementations of the
Walker<T>trait for various traversal algorithms.
Macros
- Counts the number of nodes and edges of the graph
- Declarative way to create Graph instances with ease.
Structs
- Edge identifier.
- The library’s principal Graph structure.
- A node in the graph with a name and a location.
- Node identifier.
StableGraph<N, E, Ty, Ix>is a graph datastructure using an adjacency list representation.
Enums
- Marker type for a directed graph.
- Edge direction.
Traits
- A trait to extract the coordinates of a node.
- A graph’s edge type determines whether it has directed edges or not.
- Trait for the unsigned integer type used for node and edge indices.