pub fn depth_first_order( adjacency: &[Vec<usize>], start: usize, ) -> Result<Vec<usize>, TraversalError>