5 个版本 (3 个破坏性版本)
0.4.0 | 2022年11月22日 |
---|---|
0.3.1 | 2022年10月14日 |
0.3.0 | 2022年10月14日 |
0.2.0 | 2022年10月13日 |
0.1.0 | 2022年10月13日 |
#2054 in 数据结构
93KB
1.5K SLoC
store-interval-tree
在 Rust 中具有节点相关值的平衡无界区间树。
示例
use store_interval_tree::IntervalTree;
use store_interval_tree::Interval;
use std::ops::Bound::*;
let mut interval_tree = IntervalTree::<usize, bool>::new();
interval_tree.insert(Interval::new(Excluded(0), Included(1)), true);
interval_tree.insert(Interval::new(Included(0), Excluded(3)), true);
interval_tree.insert(Interval::new(Included(6), Included(10)), true);
interval_tree.insert(Interval::new(Excluded(8), Included(9)), true);
interval_tree.insert(Interval::new(Excluded(15), Excluded(23)), true);
interval_tree.insert(Interval::new(Included(16), Excluded(21)), true);
interval_tree.insert(Interval::new(Included(17), Excluded(19)), true);
interval_tree.insert(Interval::new(Excluded(19), Included(20)), true);
interval_tree.insert(Interval::new(Excluded(25), Included(30)), true);
interval_tree.insert(Interval::new(Included(26), Included(26)), true);
let interval = Interval::new(Included(8), Included(26));
let iter = interval_tree.query_mut(&interval);
for mut entry in iter {
*entry.value() = false;
}
依赖项
~465KB