MCPcopy Create free account
hub / github.com/douchuan/algorithm / bfs

Method bfs

src/graph/util/paths.rs:126–141  ·  view source on GitHub ↗
(&mut self, g: &dyn IGraph, s: usize)

Source from the content-addressed store, hash-verified

124 }
125
126 fn bfs(&mut self, g: &dyn IGraph, s: usize) {
127 let mut queue = Queue::default();
128 self.marked[s] = true;
129 self.dist_to[s] = 0;
130 queue.enqueue(s);
131 while let Some(v) = queue.dequeue() {
132 for &w in g.adj(v) {
133 if !self.marked[w] {
134 self.edge_to[w] = v;
135 self.dist_to[w] = self.dist_to[v] + 1;
136 self.marked[w] = true;
137 queue.enqueue(w);
138 }
139 }
140 }
141 }
142}

Callers 1

newMethod · 0.80

Calls 3

enqueueMethod · 0.45
dequeueMethod · 0.45
adjMethod · 0.45

Tested by

no test coverage detected