#graph #graph-algorithms #mutable #no-std

no-std graphlib

Graphlib是一个简单而强大的Rust图数据结构库

19次发布

0.6.3 2021年11月9日
0.6.2 2020年4月14日
0.6.1 2020年2月18日
0.5.3 2019年10月4日
0.2.3 2019年3月27日

#2068 in 数据结构

Download history 139/week @ 2024-03-11 142/week @ 2024-03-18 36/week @ 2024-03-25 110/week @ 2024-04-01 40/week @ 2024-04-08 155/week @ 2024-04-15 29/week @ 2024-04-22 55/week @ 2024-04-29 21/week @ 2024-05-06 59/week @ 2024-05-13 68/week @ 2024-05-20 51/week @ 2024-05-27 25/week @ 2024-06-03 58/week @ 2024-06-10 38/week @ 2024-06-17 121/week @ 2024-06-24

244 每月下载量
用于 2 crates

MIT 许可证

105KB
1.5K SLoC

Graphlib

Build Status Discord Badge Latest Version Documentation

Graphlib是一个简单而强大的Rust图库。


这个库试图提供一个通用的API来构建、修改和遍历图,类似于Rust中其他数据结构,例如 VecHashMapVecDeque 等。

使用Graphlib

use graphlib::Graph;

let mut graph: Graph<usize> = Graph::new();

// Add two vertices to the graph
let id1 = graph.add_vertex(1);
let id2 = graph.add_vertex(2);

// Add an edge between the two vertices
graph.add_edge(&id1, &id2);

assert_eq!(*graph.fetch(&id1).unwrap(), 1);
assert_eq!(*graph.fetch(&id2).unwrap(), 2);

// The graph has 2 vertices and one edge at this point
assert_eq!(graph.vertex_count(), 2);
assert_eq!(graph.edge_count(), 1);

// Remove one of the connected vertices
graph.remove(&id1);

assert_eq!(graph.vertex_count(), 1);
assert_eq!(graph.edge_count(), 0);

不使用 std 使用

Cargo.toml

[dependencies]
graphlib = { version = "*", features = ["no_std"] }

贡献

我们欢迎任何希望为Graphlib做出贡献的人!在开始之前,请查看仓库的 问题部分

许可证

Graphlib遵循MIT许可证。

依赖关系

~1.5MB
~25K SLoC