#binary-search-tree #avl-tree #rb-tree #red-black

no-std bin+lib search_windows

二叉搜索树、红黑树和 AVL 树的实用工具

1 个不稳定版本

0.0.3 2021年2月19日
0.0.2 2021年1月7日
0.0.1 2020年12月7日
0.0.0 2020年12月6日

#1022 in 算法

MIT/Apache

93KB
2K SLoC

search_trees

二叉搜索树、红黑树和 AVL 树的实用工具。

推广视频 这里

快速开始

use search_trees::prelude::*;

let mut avl = AVLTree::new(2);
avl.insert(0);
avl.delete(0);

let mut bst = BinarySearchTree::new();
bst.insert(0);
bst.delete(0);

let mut rbt = RedBlackTree::new(2);
rbt.insert(0);
rbt.delete(0);

// you can query the tree using methods like: 
// - is_empty
// - contains
// - height
// - min/max
// - ...
println!("{:?}", bst.max());
println!("height: {}", bst.height());
println!("is_empty: {}", bst.is_empty());
println!("count_leaves: {}", bst.count_leaves());
println!("min: {}", bst.min().unwrap());
println!("max: {}", bst.max().unwrap());
println!("contains 1: {}", bst.contains(1));
println!("contains 10: {}", bst.contains(10));
print!("print_inorder: ");
bst.print_inorder();

命令行界面

使用以下命令运行命令行界面

$ cargo run

测试

使用以下命令运行测试

$ cargo test

文档

使用以下命令构建文档

$ cargo doc

然后您可以在 ./target/doc/trees/index.html 中找到文档。

基准测试

运行基准测试

$ cargo bench

您可以在 ./target/criterion/Compare/report/index.html 中找到基准测试结果。

要绘制漂亮的图形,请使用脚本 ./benches/plot_benches.py

$ cd benches
$ python plot_benches.py

您可以在 ./target/criterion 中找到图形。

无运行时依赖