pub fn path_graph<G, T, F, H, M>(
num_nodes: Option<usize>,
weights: Option<Vec<T>>,
default_node_weight: F,
default_edge_weight: H,
bidirectional: bool,
) -> Result<G, InvalidInputError>Expand description
Generate a path graph
Arguments:
num_nodes- The number of nodes to create a path graph for. Either this orweightsmust be specified. If both this andweightsare specified,weightswill take priority and this argument will be ignoredweights- AVecof node weight objects.default_node_weight- A callable that will return the weight to use for newly created nodes. This is ignored ifweightsis specified.default_edge_weight- A callable that will return the weight object to use for newly created edges.bidirectional- Whether edges are added bidirectionally. If set totruethen for any edge(u, v)an edge(v, u)will also be added. If the graph is undirected this will result in a parallel edge.
ยงExample
use rustworkx_core::petgraph;
use rustworkx_core::generators::path_graph;
use rustworkx_core::petgraph::visit::EdgeRef;
let g: petgraph::graph::UnGraph<(), ()> = path_graph(
Some(4),
None,
|| {()},
|| {()},
false
).unwrap();
assert_eq!(
vec![(0, 1), (1, 2), (2, 3)],
g.edge_references()
.map(|edge| (edge.source().index(), edge.target().index()))
.collect::<Vec<(usize, usize)>>(),
)