Crates.io | tree_collections |
lib.rs | tree_collections |
version | 0.1.8 |
source | src |
created_at | 2022-09-29 02:29:27.16887 |
updated_at | 2022-10-04 22:33:23.335089 |
description | A collection for tree data structures. It provides APIs that allows users to create memory efficient binary search trees, red-black trees and avl trees. |
homepage | |
repository | |
max_upload_size | |
id | 676319 |
size | 140,134 |
The purpose of this library is to provide APIs that allows users to create memory efficient binary search tree, red-black tree and AVL tree. Besides, by using this library, users can investigate the performance difference between red-black tree and avl tree, which helps them deeply understand the algorithms.
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());
}
Find the API doc at: https://docs.rs/tree_collections/latest/tree_collections/
or build the documentation using
$ cargo doc
Run the user promote
$ cargo run
List of operations
$ insert
$ delete
$ count
$ height
$ inorder print
$ preorder print
$ empty
$ search
$ print tree
$ exit
Run the tests using
$ cargo test
Run the Benchmark using
$ cargo bench
Cargo version: 1.56^