GraphTrait
Graph trait defining operations for working with weighted directed graphs.
Fully qualified path: alexandria_searching::dijkstra::GraphTrait
#![allow(unused)] fn main() { pub trait GraphTrait }
Trait functions
new
Create a new empty graph instance.
Returns
Graph<Nullable<Span<Node>>>
- A new empty graph
Fully qualified path: alexandria_searching::dijkstra::GraphTrait::new
#![allow(unused)] fn main() { fn new() -> Graph<Nullable<Span<Node>>> }
add_edge
Add a weighted directed edge to the graph.
Arguments
self
- The graph instance to modifysource
- The source node IDdest
- The destination node IDweight
- The weight/cost of the edge
Fully qualified path: alexandria_searching::dijkstra::GraphTrait::add_edge
#![allow(unused)] fn main() { fn add_edge(ref self: Graph<Nullable<Span<Node>>>, source: u32, dest: u32, weight: u128) }
shortest_path
Calculate shortest paths from a source node to all other nodes using Dijkstra's algorithm.
Arguments
self
- The graph instance *source
- The starting node ID to calculate paths from
Returns
Felt252Dict<u128>
- Dictionary mapping node IDs to shortest distances
Fully qualified path: alexandria_searching::dijkstra::GraphTrait::shortest_path
#![allow(unused)] fn main() { fn shortest_path(ref self: Graph<Nullable<Span<Node>>>, source: u32) -> Felt252Dict<u128> }
adj_nodes
Get adjacent nodes for a given source node.
Arguments
self
- The graph instancesource
- The node ID to get adjacencies for
Returns
Nullable<Span<Node>>
- Span of adjacent nodes or null if none exist
Fully qualified path: alexandria_searching::dijkstra::GraphTrait::adj_nodes
#![allow(unused)] fn main() { fn adj_nodes(ref self: Graph<Nullable<Span<Node>>>, source: felt252) -> Nullable<Span<Node>> }