rs-graphs
Graph algorithms in Rust
Rust 实现图数据库
[]
= "*"
初始化一个链表
use ;
let mut arena_list = new;
let mut graph = new;
基础功能
- 增
- 增加节点
graph.add_node(name: &str, data:T) -> usize - 增加边
graph.add_node_and_edge(src_name: &str, src_data: T, dst_name: &str, dst_data: T)
- 增加节点
- 查
- 获取节点:
graph.get_node(idx: usize) -> &Node<T> - 根据节点名字获取节点编号
graph.get_idx_by_name(name: &str) -> Option<&usize> - 根据节点编号获取节点名字
graph.get_name_by_idx(idx: usize) -> &str - 根据各种条件做查询
- 获取节点:
- 删
- 删除节点,根据节点编号删除节点
graph.del_node_by_idx(),根据节点名字删除节点graph.del_node_by_name(), - 删除边,
graph.del_edge_by_idx(),graph.del_edge_by_name() - 清空所有数据,得到一个空图
graph.clear()
- 删除节点,根据节点编号删除节点
- 改
- 改节点对应的值:
graph.add_node(name: &str, data: T) -> usize如果不存在,则创建节点。如果存在则修改其值。
- 改节点对应的值:
- 持久化。目前只支持
T为字符串的情况- 保存
graph.save(filename) - 加载
graph.load(filename)
- 保存
进阶功能
- 遍历全部下游
- 寻找最近链路
- 寻找关键链接