INNER CODE UNIT · Rust
bfs
rlaope/estudy · site/graph/crates/graph-wasm/src/lib.rs:364
fn bfs(g: &Graph, seeds: &[u32], depth: u32, skip_root: bool) -> Vec<u32> {
let n = g.offsets.len().saturating_sub(1);
let mut seen = vec![false; n];
let mut out = Vec::new();
for &s in seeds {
if (s as usize) < n && !seen[s as usize] {
seen[s as usize] = true;
out.push(s);
}
}
let mut start = 0;
for _ in 0..depth {
let end = out.len();
if start == end {
break;
}
for i in start..end {
let u = out[i];