2个版本

0.1.1 2024年8月21日
0.1.0 2024年8月20日
0.0.2 2024年8月17日
0.0.1 2024年7月24日

746算法 中排名

Download history 111/week @ 2024-07-22 10/week @ 2024-07-29 138/week @ 2024-08-12

每月259 次下载

Apache-2.0

26KB
594 代码行

GitHub Workflow Status crates.io

bubbletree

Bubble-tree:一种动态树结构,用于维护与压缩因子相关的完全动态数据的数据气泡。

使用方法

以下示例展示了如何维护具有给定压缩因子的完全动态数据的数据气泡

use bubbletree::BubbleTree;

#[test]
pub fn example_usage() {
    // Configure the tree
    let fanout = 4;
    let compression_factor = 3;
    let mut tree = BubbleTree::new(fanout, compression_factor);

    // Insert points
    let a = tree.insert([0.0, 0.0]);
    let b = tree.insert([1.0, 1.0]);
    let c = tree.insert([2.0, 2.0]);
    let d = tree.insert([10.0, 10.0]);
    let e = tree.insert([11.0, 11.0]);
    let f = tree.insert([12.0, 12.0]);

    // Confirm that the tree should have 2 leaves:
    assert_eq!(tree.num_leaves, 2);

    // 6 points compressed into 2 groups (or data bubbles)
    // a, b, c should be in the same group
    assert!(tree.parent_of(a) == tree.parent_of(b));
    assert!(tree.parent_of(b) == tree.parent_of(c));
    assert_ne!(tree.parent_of(a), tree.parent_of(d));

    // d, e, f should be in the same group
    assert!(tree.parent_of(d) == tree.parent_of(e));
    assert!(tree.parent_of(e) == tree.parent_of(f));
}

许可证

本项目采用Apache许可证,版本2.0 - 详细信息请参阅LICENSE.md文件。

贡献

除非你明确声明,否则任何有意提交以包含在你工作的贡献,根据Apache-2.0许可证定义,应按上述方式许可,不附加任何额外条款或条件。

依赖关系

~1.5MB
~22K SLoC