#multiset #elements #iterator #sorting #tree #structure

tree_multiset

Rust 的基于树的multiset

1 个不稳定版本

0.1.0 2024年3月2日

#1969数据结构

CC0 许可证

11KB
192

是什么

TreeMultiSet 是一个多集实现,允许重复元素。该数据结构在添加元素时保持排序状态,并支持迭代器和范围查询,在操作中提供了更多的灵活性。

迭代器

迭代器支持:通过提供的迭代器轻松遍历元素。

范围查询支持:使用范围方法遍历特定范围内的元素,允许提取定义范围内的元素。

示例

ABC241 D - 序列查询: https://atcoder.jp/contests/abc241/submissions/49645890

ABC212 D - 查询多集: https://atcoder.jp/contests/abc212/submissions/49645865


lib.rs:

此包提供了 TreeMultiSet 数据结构,这是在 Rust 中使用 BTree (BTreeMap) 实现的多集。

示例

use tree_multi_set::TreeMultiSet;

let mut set = TreeMultiSet::new();

// Inserting elements
set.insert(1);
set.insert(2);
set.insert(2);

// Counting occurrences
assert_eq!(set.count(&1), 1);
assert_eq!(set.count(&2), 2);

// Removing elements
set.remove_one(&2);
assert_eq!(set.count(&2), 1);

// Iterating over elements
for elem in set.iter() {
    println!("{}", elem);
}

TreeMultiSet 允许高效地插入、删除和计数元素,适合需要存储元素及其计数的场景。

无运行时依赖