pub struct PathAnalyzer;Expand description
路径分析器
Implementations§
Source§impl PathAnalyzer
impl PathAnalyzer
Sourcepub fn is_reachable(graph: &DirectedGraph, from: NodeId, to: NodeId) -> bool
pub fn is_reachable(graph: &DirectedGraph, from: NodeId, to: NodeId) -> bool
检查从 from 到 to 是否可达
Sourcepub fn find_all_paths(
graph: &DirectedGraph,
from: NodeId,
to: NodeId,
max_depth: usize,
) -> Vec<Vec<NodeId>>
pub fn find_all_paths( graph: &DirectedGraph, from: NodeId, to: NodeId, max_depth: usize, ) -> Vec<Vec<NodeId>>
查找从 from 到 to 的所有简单路径(限制最大长度)
简单路径:不重复访问节点。
max_depth 限制路径最大长度,防止指数爆炸。
Sourcepub fn shortest_path_length(
graph: &DirectedGraph,
from: NodeId,
to: NodeId,
) -> Option<usize>
pub fn shortest_path_length( graph: &DirectedGraph, from: NodeId, to: NodeId, ) -> Option<usize>
计算从 from 到 to 的最短路径长度(BFS)
Sourcepub fn bfs_distances(
graph: &DirectedGraph,
start: NodeId,
) -> HashMap<NodeId, usize>
pub fn bfs_distances( graph: &DirectedGraph, start: NodeId, ) -> HashMap<NodeId, usize>
计算从 start 到所有可达节点的最短距离
Sourcepub fn reachable_nodes(graph: &DirectedGraph, start: NodeId) -> HashSet<NodeId>
pub fn reachable_nodes(graph: &DirectedGraph, start: NodeId) -> HashSet<NodeId>
查找从 start 可达的所有节点
Sourcepub fn diameter(graph: &DirectedGraph) -> Option<usize>
pub fn diameter(graph: &DirectedGraph) -> Option<usize>
计算图的直径(最长最短路径)
对于无权图,直径是所有节点对之间最短路径的最大值。
Sourcepub fn eccentricity(graph: &DirectedGraph, node: NodeId) -> Option<usize>
pub fn eccentricity(graph: &DirectedGraph, node: NodeId) -> Option<usize>
计算节点偏心度(到最远可达节点的距离)
Sourcepub fn radius(graph: &DirectedGraph) -> Option<usize>
pub fn radius(graph: &DirectedGraph) -> Option<usize>
计算图的半径(最小偏心度)
Auto Trait Implementations§
impl Freeze for PathAnalyzer
impl RefUnwindSafe for PathAnalyzer
impl Send for PathAnalyzer
impl Sync for PathAnalyzer
impl Unpin for PathAnalyzer
impl UnsafeUnpin for PathAnalyzer
impl UnwindSafe for PathAnalyzer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more