1 个不稳定版本

0.1.0 2023 年 10 月 19 日

2437数据结构

MIT 许可协议

25KB
410

Kurve

具有 Dijkstra 路径搜索的简单邻接表图数据结构。

没有花哨的功能;只是一个具有添加/删除顶点和带权/无权边的简单路径搜索算法的图。

性能?没有为此目的而设计,但对于简单到中级情况来说足够好。

使用方法

use kurve::Kurve;

// Create a graph with String IDs and i32 values
let mut graph: Kurve<String, i32> = Kurve::new();

// Add some vertices
graph.add_vertex("id_1".to_string(), 100);
graph.add_vertex("id_2".to_string(), 200);
graph.add_vertex("id_3".to_string(), 300);
graph.add_vertex("id_4".to_string(), 400);

// Add some edges
graph.add_edge("id_1".to_string(), "id_2".to_string());
graph.add_edge("id_1".to_string(), "id_3".to_string());
graph.add_edge("id_2".to_string(), "id_4".to_string());
graph.add_edge("id_4".to_string(), "id_3".to_string());

// Get neighbors of a node
let neighbors = graph.get_neighbors("id_1".to_string()); // ["id_2", "id_3"]

// Find paths
let path = graph.dijkstra("id_1".to_string(), "id_4".to_string()); // ["id_1", "id_2", "id_4"]

无运行时依赖