path_finding_lib/search/
breadth_first.rs1use crate::graph::Graph;
2use crate::node::Node;
3use crate::path::PathFinding;
4use crate::search::probing;
5use crate::search::probing::{bi_directional_probe, probe};
6
7pub struct BreadthFirstSearch {}
8
9pub struct BiBreadthFirstSearch {}
10
11impl PathFinding for BreadthFirstSearch {
12 fn execute(&self, source: Node, target: Node, graph: &Graph) -> Graph {
13 return probe(source.clone(), target.id, graph, probing::dequeue);
14 }
15}
16
17impl PathFinding for BiBreadthFirstSearch {
18 fn execute(&self, source: Node, target: Node, graph: &Graph) -> Graph {
19 return bi_directional_probe(source, target, graph);
20 }
21}