dsalgo 0.3.10

A package for Datastructures and Algorithms.
Documentation
pub fn transpose(g: &[Vec<usize>]) -> Vec<Vec<usize>> {
    let n = g.len();

    let mut t = vec![vec![]; n];

    for u in 0..n {
        for &v in g[u].iter() {
            t[v].push(u);
        }
    }

    t
}

#[cfg(test)]

mod tests {

    use super::*;

    #[test]

    fn test() {
        let g = vec![vec![1, 2], vec![2], vec![0]];

        let t = vec![vec![2], vec![0], vec![0, 1]];

        assert_eq!(transpose(&g), t);
    }
}