6 个版本
0.1.6 | 2020年11月2日 |
---|---|
0.1.5 | 2019年6月15日 |
0.1.4 | 2018年3月20日 |
0.1.3 | 2017年8月9日 |
#1229 in 数据结构
113 每月下载次数
69KB
1.5K SLoC
Lz DIET (离散区间编码树)
此 crate 提供了一个离散区间编码树实现。
特性
- 树是 AVL 平衡的
crate 特性
- bigint - 允许树与 BigInt 和 BigUInt 一起使用
- extprim - 允许树与 u128 和 i128 一起使用
- chrono - 允许树与 chrono 日期一起使用
许可证
本项目采用 MIT 许可证 (LICENSE 或 http://opensource.org/licenses/MIT)。
lib.rs
:
此 crate 提供了一个离散区间编码树 (DIET) 实现。
在树变异的性能成本较小的情况下,节省了大量内存,并在元素查找方面可能获得性能提升。
Diet
use lz_diet::{Diet, Interval};
let mut diet = Diet::new();
diet.insert(5);
diet.insert(7);
diet.insert(6);
let intervals: Vec<_> = diet.into_iter().collect();
assert_eq!(&intervals[..], &[Interval::from(5..8)]);
区间端点被评估以确定区间是否为离散的,此检查通过实现 AdjacentBound
特性和提供的 adjacent_bound_impl
宏快速实现。
依赖
~0.1–1MB
~16K SLoC