[][src]Crate search_trees

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

search_trees provides utilities to generate search tree data structures:

Examples

Binary Search Tree

use search_trees::prelude::*;

let mut bst = BinarySearchTree::new();
bst.insert(3);
bst.insert(5);
bst.insert(0);
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();

Red-black Tree

use search_trees::prelude::*;

let mut rbt = RedBlackTree::new();
rbt.insert(3);
rbt.insert(5);
rbt.insert(0);
println!("height: {}", rbt.height());
println!("is_empty: {}", rbt.is_empty());
println!("count_leaves: {}", rbt.count_leaves());
println!("min: {}", rbt.min().unwrap());
println!("max: {}", rbt.max().unwrap());
println!("contains 2: {}", rbt.contains(2));
println!("contains 10: {}", rbt.contains(0));
print!("print_inorder: ");
rbt.print_inorder();

AVL Tree

use search_trees::prelude::*;

let mut avl = AVLTree::new();
avl.insert(3);
avl.insert(5);
avl.insert(0);
println!("height: {}", avl.height());
println!("is_empty: {}", avl.is_empty());
println!("count_leaves: {}", avl.count_leaves());
println!("min: {}", avl.min().unwrap());
println!("max: {}", avl.max().unwrap());
println!("contains 2: {}", avl.contains(2));
println!("contains 10: {}", avl.contains(10));
print!("print_inorder: ");
avl.print_inorder();

Modules

avltree

AVL tree

base

An automatically-implemented extension trait for nodes and trees

bstree

Binary search tree

prelude

Convenience re-export of common members

rbtree

Red-black tree