Ziyang Hu 2 years ago
parent 6cc7c5f591
commit c7431184f2

@ -3,8 +3,8 @@
* [x] more complete functions and aggregations
* [ ] more complete tx tests
* [ ] graph algorithms
* [ ] bfs
* [ ] dfs
* [x] bfs
* [x] dfs
* [ ] shortest path
* [ ] A*
* [ ] Yen's k-shortest

@ -86,27 +86,24 @@ impl AlgoImpl for Bfs {
if visited.contains(starting_node) {
continue;
}
visited.insert(starting_node.clone());
let mut queue: VecDeque<DataValue> = VecDeque::default();
queue.push_front(starting_node.clone());
while let Some(candidate) = queue.pop_back() {
if visited.contains(&candidate) {
continue;
}
visited.insert(candidate.clone());
for edge in edges.prefix_iter(&candidate, tx, stores)? {
let edge = edge?;
let to_node = edge
.0
.get(1)
.ok_or_else(|| anyhow!("'edges' relation too short"))?;
if visited.contains(to_node) || backtrace.contains_key(to_node) {
if visited.contains(&to_node) {
continue;
}
visited.insert(to_node.clone());
let cand_tuple = nodes
.prefix_iter(to_node, tx, stores)?
.next()

Loading…
Cancel
Save