search_trees

Crates.iosearch_trees
lib.rssearch_trees
version0.0.3
sourcesrc
created_at2020-12-06 08:44:48.389653
updated_at2021-02-19 14:16:56.704736
descriptionUtilities for binary search tree, red-black tree, and AVL tree.
homepagehttps://crates.io/crates/search_trees
repositoryhttps://github.com/Leo-LiHao/search_trees
max_upload_size
id320087
size119,289
Hao LI (Leo-LiHao)

documentation

https://leo-lihao.github.io/search_trees/

README

search_trees

Utilities for binary search tree, red-black tree, and AVL tree.

Promotional video HERE

Quick Start

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();

Command Line Interface

Run the command line interface using

$ cargo run

Testing

Run the tests using

$ cargo test

Documentation

Building the documentation using

$ cargo doc

then you can find the documentation in ./target/doc/trees/index.html,

Benchmarks

Run the benchmarks

$ cargo bench

You can find the bench results in ./target/criterion/Compare/report/index.html

To plot pretty figures, use the script ./benches/plot_benches.py

$ cd benches
$ python plot_benches.py

You can find the figures in ./target/criterion

Commit count: 7

cargo fmt