pub struct BinarySearchTree<T> {
pub root: Option<Box<Node<T>>>,
}Expand description
A binary search tree implementation
Fields§
§root: Option<Box<Node<T>>>Implementations§
Source§impl<T: Ord + Debug> BinarySearchTree<T>
impl<T: Ord + Debug> BinarySearchTree<T>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new empty binary search tree
Examples found in repository?
examples/basic.rs (line 5)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 let mut tree = BinarySearchTree::new();
6 for &value in &[8, 3, 10, 1, 6, 14, 4, 7, 13] {
7 tree.insert(value);
8 }
9
10 let ascii = AsciiVisualizer;
11 println!("ASCII Visualization:\n{}", ascii.visualize(&tree)?);
12
13 let svg = SvgVisualizer::default();
14 std::fs::write("example_tree.svg", svg.visualize(&tree)?)?;
15 println!("SVG visualization has been saved to 'example_tree.svg'");
16
17 Ok(())
18}Sourcepub fn insert(&mut self, value: T)
pub fn insert(&mut self, value: T)
Inserts a value into the tree
Examples found in repository?
examples/basic.rs (line 7)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 let mut tree = BinarySearchTree::new();
6 for &value in &[8, 3, 10, 1, 6, 14, 4, 7, 13] {
7 tree.insert(value);
8 }
9
10 let ascii = AsciiVisualizer;
11 println!("ASCII Visualization:\n{}", ascii.visualize(&tree)?);
12
13 let svg = SvgVisualizer::default();
14 std::fs::write("example_tree.svg", svg.visualize(&tree)?)?;
15 println!("SVG visualization has been saved to 'example_tree.svg'");
16
17 Ok(())
18}Sourcepub fn inorder(&self) -> InOrderIterator<'_, T> ⓘ
pub fn inorder(&self) -> InOrderIterator<'_, T> ⓘ
Returns an iterator over the tree nodes in-order
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for BinarySearchTree<T>
impl<T> RefUnwindSafe for BinarySearchTree<T>where
T: RefUnwindSafe,
impl<T> Send for BinarySearchTree<T>where
T: Send,
impl<T> Sync for BinarySearchTree<T>where
T: Sync,
impl<T> Unpin for BinarySearchTree<T>
impl<T> UnwindSafe for BinarySearchTree<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more