[−][src]Function gamma::traversal::breadth_first
pub fn breadth_first<'a, G>(
graph: &'a G,
root: usize
) -> Result<BreadthFirst<'a, G>, Error> where
G: Graph,
Implements a breadth-first traversal as a Step Iterator.
use gamma::graph::{ Graph, Error, ArrayGraph, Step }; use gamma::traversal::breadth_first; fn main() -> Result<(), Error> { let graph = ArrayGraph::from_adjacency(vec![ vec![ 1, 3 ], vec![ 0, 2 ], vec![ 1, 3 ], vec![ 2, 0 ] ])?; let traversal = breadth_first(&graph, 0)?; assert_eq!(traversal.collect::<Vec<_>>(), vec![ Step::new(0, 1, false), Step::new(0, 3, false), Step::new(1, 2, false), Step::new(3, 2, true) ]); Ok(()) }