3个不稳定版本
0.2.1 | 2022年8月17日 |
---|---|
0.2.0 |
|
0.1.1 | 2022年8月7日 |
0.1.0 | 2022年8月5日 |
#1329 in 数据结构
27KB
633 行
Whistlin'Oak
由任意内存支持的带注释的偶数arity树。
使用方法
whistlinoak = "0.2"
示例
use whistlinoak::{Annotation, Tree};
struct Cardinality(usize);
impl<T> Annotation<T> for Cardinality {
fn compute(leaf: &T) -> Self {
Cardinality(1)
}
fn combine<'a>(annotations: impl Iterator<Item=&'a Self>) -> Self
where
Self: 'a
{
Self(annotations.fold(0, |curr, c| curr + c.0))
}
}
let mut tree = Tree::<usize, Cardinality>::new();
let n_leaves = 1000;
for i in 0..n_leaves {
tree.push(i).unwrap();
}
assert_eq!(tree.len(), n_leaves);
assert_eq!(tree.root().0, n_leaves);
依赖项
~165KB