10个版本 (破坏性)
0.8.1 | 2024年4月8日 |
---|---|
0.8.0 | 2024年2月9日 |
0.7.1 | 2024年1月15日 |
0.7.0 | 2023年12月30日 |
0.1.0 | 2021年9月11日 |
#838 在 数据结构
每月229次下载
在 8 个crate中使用 (直接使用2个)
120KB
3K SLoC
im-lists
持久化展开链表和vlist的实现。此链表使用Arc
或Rc
作为后端,适用于单线程或多线程环境。单线程列表可以找到List
,线程安全的实现可以找到SharedList
。它是泛型智能指针,所以如果您想使用自定义智能指针(例如Gc
),则可以这样做。
展开链表是一种链表,其中每个节点包含一个元素向量。虽然算法复杂度与普通朴素链表相同,但将元素存储在向量中提高了缓存局部性,并且在常见操作上也提供了实际的速度提升。Vlist类似于展开链表,但是每个节点的向量容量呈指数增长。这也意味着需要遍历节点的操作将在O(log(n))
时间内运行。
许可证
以下任一许可证下授权:
- Apache许可证版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的您提交的任何贡献,都应双重许可如上所述,没有任何附加条款或条件。