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 数据结构

Download history 5/week @ 2024-02-26 113/week @ 2024-04-01

113 每月下载次数

MIT 许可证

69KB
1.5K SLoC

Lz DIET (离散区间编码树)

此 crate 提供了一个离散区间编码树实现。

Build Status

文档

特性

  • 树是 AVL 平衡的

crate 特性

  • bigint - 允许树与 BigInt 和 BigUInt 一起使用
  • extprim - 允许树与 u128 和 i128 一起使用
  • chrono - 允许树与 chrono 日期一起使用

许可证

本项目采用 MIT 许可证 (LICENSEhttp://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