[−][src]Function gamma::traversal::depth_first
pub fn depth_first<'a, G>(
graph: &'a G,
root: usize
) -> Result<DepthFirst<'a, G>, Error> where
G: Graph,
Implements a depth-first traversal as a Step Iterator.
use gamma::graph::{ Graph, Error, ArrayGraph, Step }; use gamma::traversal::depth_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 = depth_first(&graph, 0)?; assert_eq!(traversal.collect::<Vec<_>>(), vec![ Step::new(0, 1, false), Step::new(1, 2, false), Step::new(2, 3, false), Step::new(3, 0, true) ]); Ok(()) }