#avl-tree #binary-search-tree #tree #rb-tree #binary-tree #avl

bin+lib tree_collections

树数据结构的集合。它提供了API,允许用户创建内存高效的二叉搜索树、红黑树和AVL树。

9 个版本

0.1.8 2022年10月4日
0.1.7 2022年10月4日
0.1.6 2022年9月29日

768数据结构 中排名

每月 25 次下载

MIT/Apache

110KB
2K SLoC

Tree_collections

此库的目的是提供API,允许用户创建内存高效的二叉搜索树、红黑树和AVL树。此外,通过使用此库,用户可以研究红黑树和AVL树之间的性能差异,这有助于他们深入理解算法。

快速开始

use tree_collections::prelude::*;

fn main() {
    let mut rb_tree = RBTree::new();
    rb_tree.insert(1);
    rb_tree.insert(2);
    rb_tree.insert(3);
    rb_tree.insert(4);
    rb_tree.insert(5);
    rb_tree.delete(3);
    println!("Red-Black Tree:");
    rb_tree.print();
    println!("Number of leaves: {:?}", rb_tree.count_leaves());
    println!("Height of tree: {:?}", rb_tree.height());

    let mut avl_tree = AVLTree::new();
    avl_tree.insert(1);
    avl_tree.insert(2);
    avl_tree.insert(3);
    avl_tree.insert(4);
    avl_tree.insert(5);
    avl_tree.delete(3);
    println!("AVL Tree:");
    avl_tree.print();
    println!("Number of leaves: {:?}", avl_tree.count_leaves());
    println!("Height of tree: {:?}", avl_tree.height());
}

文档

API 文档在: https://docs.rs/tree_collections/latest/tree_collections/

或使用以下方式生成文档

$ cargo doc

用户推广

运行用户推广

$ cargo run

操作列表

$ insert
$ delete
$ count
$ height
$ inorder print
$ preorder print
$ empty
$ search
$ print tree
$ exit

测试

使用以下方式运行测试

$ cargo test

基准测试

使用以下方式运行基准测试

$ cargo bench

要求

Cargo 版本:1.56^

参考: https://blog.rust-lang.net.cn/2021/10/21/Rust-1.56.0.html

依赖项

~9–20MB
~258K SLoC