[][src]Function rs_graph::classes::grid

pub fn grid<'a, G>(n: usize, m: usize) -> G where
    G: Graph<'a> + Buildable

Return a grid graph with n columns and m rows.

The nodes are created from left to right and from bottom to top. The following is a grid graph with 5 columns and 4 rows.

15 - 16 - 17 - 18 - 19 | | | | | 10 - 11 - 12 - 13 - 14 | | | | | 5 -- 6 -- 7 -- 8 -- 9 | | | | | 0 -- 1 -- 2 -- 3 -- 4

use rs_graph::LinkedListGraph;
use rs_graph::traits::*;
use rs_graph::classes;

let g: LinkedListGraph = classes::grid(5, 4);
assert_eq!(g.num_nodes(), 20);
assert_eq!(g.num_edges(), 5*3 + 4*4);

assert_eq!(g.nodes().filter(|&u| g.neighs(u).count() == 2).count(), 4);
assert_eq!(g.nodes().filter(|&u| g.neighs(u).count() == 3).count(), 10);
assert_eq!(g.nodes().filter(|&u| g.neighs(u).count() == 4).count(), 6);