#immutability #avl #avl-tree #persistent

immutable-avl

基于 AVL 树实现的 Rust 中的不可变映射和集合

1 个稳定版本

1.0.0 2022 年 3 月 16 日

数据结构 中排名第 2303

MIT 许可证

14KB
350

Rust 中的不可变映射实现

这是一个基于不可变 AVL 树的不可变(函数式)集合或映射实现,纯 Rust。

添加或删除操作的时间和空间复杂度是 log(N),其中 N 是原始集合的大小。

这个小项目是受到在 LLVM/Clang 静态分析器中使用 ImmutableMap 的启发。

使用方法

let set = ImmutableSet::new();
let new_set = set.insert(1);

let map = ImmutableMap::new();
let new_map = new_map.insert(1, "abc");
let new_map = new_map.delete(1, "abc");
let size = new_map.size();
let data = new_map.get_val_as_ref(1);

参考

无运行时依赖