Trait compt::Visitor[][src]

pub trait Visitor: Sized {
    type Item;
    fn next(self) -> (Self::Item, Option<[Self; 2]>);

    fn level_remaining_hint(&self) -> (usize, Option<usize>) { ... }
fn with_depth(self, start_depth: Depth) -> LevelIter<Self> { ... }
fn zip<F: Visitor>(self, f: F) -> Zip<Self, F> { ... }
fn map<B, F: Fn(Self::Item) -> B>(self, func: F) -> Map<Self, F> { ... }
fn take(self, num: usize) -> Take<Self> { ... }
fn flip(self) -> Flip<Self> { ... }
fn dfs_preorder_iter(self) -> DfsPreOrderIter<Self>
Notable traits for DfsPreOrderIter<C>
impl<C: Visitor> Iterator for DfsPreOrderIter<C> type Item = C::Item;
{ ... }
fn dfs_inorder_iter(self) -> DfsInOrderIter<Self>
Notable traits for DfsInOrderIter<C>
impl<C: Visitor> Iterator for DfsInOrderIter<C> type Item = C::Item;
{ ... }
fn dfs_preorder(self, func: impl FnMut(Self::Item)) { ... }
fn dfs_inorder(self, func: impl FnMut(Self::Item)) { ... }
fn dfs_postorder(self, func: impl FnMut(Self::Item)) { ... } }
Expand description

The trait this crate revoles around. A complete binary tree visitor.

Associated Types

The common item produced for both leafs and non leafs.

Required methods

Consume this visitor, and produce the element it was pointing to along with it’s children visitors.

Provided methods

Return the levels remaining including the one that will be produced by consuming this iterator. So if you first made this object from the root for a tree of size 5, it should return 5. Think of is as height-depth. This is used to make good allocations when doing dfs and bfs. Defaults to (0,None)

Iterator Adapter to also produce the depth each iteration.

Combine two tree visitors.

Map iterator adapter

Only produce children up to num.

Flips left and right children.

Provides a dfs preorder iterator. Unlike the callback version, This one relies on dynamic allocation for its stack.

Calls the closure in dfs preorder (root,left,right). Takes advantage of the callstack to do dfs.

Calls the closure in dfs preorder (left,right,root). Takes advantage of the callstack to do dfs.

Calls the closure in dfs preorder (left,right,root). Takes advantage of the callstack to do dfs.

Implementors