25 个稳定版本 (4 个主要版本)
4.7.2 | 2024年8月13日 |
---|---|
4.7.0 | 2024年7月30日 |
4.6.0 | 2023年3月9日 |
4.5.0 | 2022年9月16日 |
0.1.1 | 2016年12月22日 |
#41 in 数据结构
每月下载量 29,183
用于 102 个crate(37个直接使用)
120KB
1.5K SLoC
indextree
支持多线程的竞技场树结构
此竞技场树结构仅使用单个 Vec
和数值标识符(向量的索引)而非引用计数的指针。这意味着没有 RefCell
,可变性通过竞技场唯一的 (&mut) 访问方式以更符合Rust的方式处理。树可以像 Vec
一样在线程之间发送或共享。这使支持并行树遍历等通用多进程支持成为可能。
示例用法
use indextree::Arena;
// Create a new arena
let arena = &mut Arena::new();
// Add some new nodes to the arena
let a = arena.new_node(1);
let b = arena.new_node(2);
// Append a to b
assert!(a.append(b, arena).is_ok());
assert_eq!(b.ancestors(arena).into_iter().count(), 2);
基准测试
依赖项
~0–520KB
~11K SLoC