pub struct BfsResult {
pub order: Vec<VertexId>,
pub rank: Vec<Option<usize>>,
pub parents: Vec<Option<VertexId>>,
pub pred: Vec<Option<VertexId>>,
pub succ: Vec<Option<VertexId>>,
pub dist: Vec<Option<usize>>,
pub stopped: bool,
}Expand description
Results of a breadth-first search (Graph::bfs, Graph::bfs_with).
The per-vertex vectors (rank, parents, pred, succ, dist) have
one entry per vertex of the graph, None for vertices that were not
visited (e.g. unreachable, outside the restricted set, or not reached
because the visitor stopped the search).
Fields§
§order: Vec<VertexId>The visited vertices, in visiting order.
rank: Vec<Option<usize>>The rank (position in order) of each vertex.
parents: Vec<Option<VertexId>>The parent of each vertex in the BFS forest: None for the roots of
the search trees and for unvisited vertices (igraph itself already
assigns a parent to vertices that were queued but not yet visited when
the visitor stopped the search; the bindings report them as None
too, so that parents always describes the visited forest).
pred: Vec<Option<VertexId>>The vertex visited just before each vertex: None for the roots of
the search trees and for unvisited vertices.
succ: Vec<Option<VertexId>>The vertex visited just after each vertex: None for the last vertex
of each search tree and for unvisited vertices. When the visitor stops
the search, the successor of the vertex it stopped at is None too.
dist: Vec<Option<usize>>The distance of each vertex from the root of its search tree.
stopped: booltrue if the visitor closure returned
ControlFlow::Break, so that the search ended early.
Implementations§
Source§impl BfsResult
impl BfsResult
Sourcepub fn is_visited(&self, v: VertexId) -> bool
pub fn is_visited(&self, v: VertexId) -> bool
Whether vertex v was visited by the search.
Sourcepub fn roots(&self) -> Vec<VertexId> ⓘ
pub fn roots(&self) -> Vec<VertexId> ⓘ
The roots of the search trees, in the order they were used.
In an undirected graph searched with BfsOptions::unreachable set
(and no restriction), there is exactly one root per connected
component, see Graph::connected_components.