#incremental #topological #graph #dag

incremental-topo

数据结构,用于维护一组值上的增量拓扑排序

5 个版本

0.2.1 2022年7月14日
0.2.0 2022年7月10日
0.1.2 2019年8月2日
0.1.1 2018年9月19日
0.1.0 2018年9月5日

#1384数据结构

Download history • Rust 包仓库 182/week @ 2024-04-03 • Rust 包仓库 205/week @ 2024-04-10 • Rust 包仓库 147/week @ 2024-04-17 • Rust 包仓库 147/week @ 2024-04-24 • Rust 包仓库 109/week @ 2024-05-01 • Rust 包仓库 180/week @ 2024-05-08 • Rust 包仓库 128/week @ 2024-05-15 • Rust 包仓库 30/week @ 2024-05-22 • Rust 包仓库 101/week @ 2024-05-29 • Rust 包仓库 103/week @ 2024-06-05 • Rust 包仓库 98/week @ 2024-06-12 • Rust 包仓库 119/week @ 2024-06-19 • Rust 包仓库 43/week @ 2024-06-26 • Rust 包仓库 97/week @ 2024-07-03 • Rust 包仓库 87/week @ 2024-07-10 • Rust 包仓库 44/week @ 2024-07-17 • Rust 包仓库

每月308 次下载
用于 p2panda-rs

MIT/Apache

43KB
548

Incremental Topo

Crates.io Travis CI Documentation

一种用于增量维护拓扑排序的数据结构。

用法

要使用 incremental-topo,首先将其添加到您的 Cargo.toml

[dependencies]
incremental-topo = "0.2.1"

然后,将其添加到您的 crate 中

use incremental_topo::IncrementalTopo;

let mut dag = IncrementalTopo::new();

let cat = dag.add_node();
let dog = dag.add_node();
let human = dag.add_node();

assert_eq!(dag.len(), 3);

dag.add_dependency(&human, &dog).unwrap();
dag.add_dependency(&human, &cat).unwrap();
dag.add_dependency(&dog, &cat).unwrap();

let animal_order: Vec<_> = dag.descendants(&human).unwrap().collect();

assert_eq!(animal_order, vec![dog, cat]);

有关更多详细信息,请参阅 文档

许可协议

本项目采用 MIT 许可证和 Apache 2.0 许可证双重许可。

依赖项

~160KB