Method
bfs
(&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 | } |
Tested by
no test coverage detected