pub struct GraphAlgorithms;Expand description
Graph algorithms for various operations
Implementations§
Source§impl GraphAlgorithms
impl GraphAlgorithms
Sourcepub fn find_connected_components(
nodes: &[GraphNode],
edges: &[GraphEdge],
) -> Vec<Vec<String>>
pub fn find_connected_components( nodes: &[GraphNode], edges: &[GraphEdge], ) -> Vec<Vec<String>>
Find all connected components in the graph
Sourcepub fn dijkstra_shortest_path(
source: &str,
target: &str,
nodes: &[GraphNode],
edges: &[GraphEdge],
) -> Option<Vec<String>>
pub fn dijkstra_shortest_path( source: &str, target: &str, nodes: &[GraphNode], edges: &[GraphEdge], ) -> Option<Vec<String>>
Find shortest path using Dijkstra’s algorithm
Sourcepub fn kruskal_mst(nodes: &[GraphNode], edges: &[GraphEdge]) -> Vec<GraphEdge>
pub fn kruskal_mst(nodes: &[GraphNode], edges: &[GraphEdge]) -> Vec<GraphEdge>
Find minimum spanning tree using Kruskal’s algorithm
Sourcepub fn detect_cycle(nodes: &[GraphNode], edges: &[GraphEdge]) -> bool
pub fn detect_cycle(nodes: &[GraphNode], edges: &[GraphEdge]) -> bool
Detect cycles in the graph using DFS
Auto Trait Implementations§
impl Freeze for GraphAlgorithms
impl RefUnwindSafe for GraphAlgorithms
impl Send for GraphAlgorithms
impl Sync for GraphAlgorithms
impl Unpin for GraphAlgorithms
impl UnwindSafe for GraphAlgorithms
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SerializableKey for T
impl<T> SerializableKey for T
Source§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
Source§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Borrows the value.
Source§fn into_taken(self) -> T
fn into_taken(self) -> T
Takes the value.