pub struct Tree<T> { /* private fields */ }
Implementations
sourceimpl<T> Tree<T>
impl<T> Tree<T>
pub fn new(root: T) -> Self
sourcepub fn nodes_bfs(&self) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
pub fn nodes_bfs(&self) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
Returns an iterator that traverses the tree in breadth-first order.
sourcepub fn nodes_dfs(&self) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
pub fn nodes_dfs(&self) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
Returns an iterator that traverses the tree in depth-first order.
sourcepub fn nodes_dfs_from(&self, index: usize) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
pub fn nodes_dfs_from(&self, index: usize) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
Returns an iterator that traverses the tree in depth-first order starting from the node at index.
Arguments
index
- Index to start iterating from.
sourcepub fn nodes_bfs_from(&self, index: usize) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
pub fn nodes_bfs_from(&self, index: usize) -> TreeIter<'_, T>ⓘNotable traits for TreeIter<'a, T>impl<'a, T> Iterator for TreeIter<'a, T> type Item = &'a Node<T>;
Returns an iterator that traverses the tree in breadth-first order starting from the node at index.
Arguments
index
- Index to start iterating from.
pub fn get_node(&self, index: usize) -> Option<&Node<T>>
pub fn get_mut_node(&mut self, index: usize) -> Option<&mut Node<T>>
pub fn get(&self, index: usize) -> Option<&T>
pub fn get_mut(&mut self, index: usize) -> Option<&mut T>
sourcepub fn add_child_to_index(
&mut self,
parent_index: usize,
val: T
) -> Option<NodePosition>
pub fn add_child_to_index(
&mut self,
parent_index: usize,
val: T
) -> Option<NodePosition>
Add child to node at index. Child is pushed to the end of the node’s current children.
Arguments
-
parent_index
- Index of the parent node. -
val
- Value of the new child node.
sourcepub fn remove_node(&mut self, index: usize) -> Option<()>
pub fn remove_node(&mut self, index: usize) -> Option<()>
Remove a node from the tree and any child nodes. Complexity is usually O(n) where n depends on the amount of nodes in the tree. If nodes typically have a lot of children, complexity should be closer to O(n * log n).
Arguments
index
- Index of the node to be removed.
sourcepub fn emplace(&mut self, index: usize, val: T) -> Option<NodePosition>
pub fn emplace(&mut self, index: usize, val: T) -> Option<NodePosition>
Place a node to the position of another node, pointed to by index. Pushes siblings to right. Fails if no node found at index or if node at index is the root.
Arguments
-
index
- Index to emplace at. -
val
- Value of the new node.
Trait Implementations
Auto Trait Implementations
impl<T> RefUnwindSafe for Tree<T> where
T: RefUnwindSafe,
impl<T> Send for Tree<T> where
T: Send,
impl<T> Sync for Tree<T> where
T: Sync,
impl<T> Unpin for Tree<T> where
T: Unpin,
impl<T> UnwindSafe for Tree<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more