dsalgo 0.3.10

A package for Datastructures and Algorithms.
Documentation
/// adjacency matrix

type G<T> = Vec<Vec<T>>;

pub fn floyd_warshall<T: Clone, F: FnMut(T, T, T) -> T>(
    mut g: G<T>,
    mut f: F,
) -> G<T> {
    let n = g[0].len();

    for k in 0..n {
        for i in 0..n {
            for j in 0..n {
                g[i][j] = f(g[i][j].clone(), g[i][k].clone(), g[k][j].clone());
            }
        }
    }

    g
}