pub fn bfs(g: &Graph, start: usize) -> Vec<usize>Expand description
BFS (Breadth-First Search) — kenglikka qidiruv: to’lqin kabi tarqaladi.
G’oya: navbat (queue) ishlatamiz. Avval boshlang’ich tugunning barcha qo’shnilarini ko’ramiz, keyin ularning qo’shnilarini — ya’ni qavat-qavat.
Shu sababli og’irliksiz grafda BFS eng qisqa yo’lni topadi.
- Time: O(V + E), Space: O(V).
Qaytadi: tugunlarni ko’rilgan tartibda.
§Misol
use rust_algorithms::graph::{Graph, bfs};
// 0 — 1 — 3
// |
// 2
let mut g = Graph::new_undirected(4);
g.add_unweighted_edge(0, 1);
g.add_unweighted_edge(0, 2);
g.add_unweighted_edge(1, 3);
assert_eq!(bfs(&g, 0), vec![0, 1, 2, 3]);