Trait OwnedIntoIteratorOfBinaryTrees

Source
pub trait OwnedIntoIteratorOfBinaryTrees<T>: IntoIterator<Item = T> + Sized{
    // Provided methods
    fn at_path(self, path: &[usize]) -> Option<T> { ... }
    fn bfs_each(self) -> OwnedBinaryBFSCollectionIterator<Self>  { ... }
    fn dfs_preorder_each(self) -> OwnedBinaryDFSPreorderCollectionIterator<Self>  { ... }
    fn dfs_inorder_each(self) -> OwnedDFSInorderCollectionIterator<Self>  { ... }
    fn dfs_postorder_each(
        self,
    ) -> OwnedBinaryDFSPostorderCollectionIterator<Self>  { ... }
}

Provided Methods§

Source

fn at_path(self, path: &[usize]) -> Option<T>

Given a path (list of indexes - see TreeContext::path for more information) down the nodes of tree, at_path will walk the list of indexes and fetch the node at the given path.

§Example Usage
use tree_iterators_rs::prelude::{BinaryTree, OwnedIntoIteratorOfBinaryTrees};

let trees = [
    BinaryTree {
        value: 0,
        left: None,
        right: None,
    },
    BinaryTree {
        value: 1,
        left: None,
        right: Some(Box::new(BinaryTree {
            value: 2,
            left: Some(Box::new(BinaryTree {
                value: 3,
                left: None,
                right: None,
            })),
            right: None,
        })),
    },
];

assert_eq!(Some(3), trees.at_path(&[1, 1, 0]).map(|tree| tree.value));
Source

fn bfs_each(self) -> OwnedBinaryBFSCollectionIterator<Self>

Iterates over each tree in the IntoIterator, then over each node in each tree in a breadth first search.

This is equivalent to the following:

self.into_iter().flat_map(|tree| tree.bfs());
Source

fn dfs_preorder_each(self) -> OwnedBinaryDFSPreorderCollectionIterator<Self>

Iterates over each tree in the IntoIterator, then over each node in each tree in a depth first preorder search.

This is equivalent to the following:

self.into_iter().flat_map(|tree| tree.dfs_preorder());
Source

fn dfs_inorder_each(self) -> OwnedDFSInorderCollectionIterator<Self>

Iterates over each tree in the IntoIterator, then over each node in each tree in a depth first inorder search.

This is equivalent to the following:

self.into_iter().flat_map(|tree| tree.dfs_inorder());
Source

fn dfs_postorder_each(self) -> OwnedBinaryDFSPostorderCollectionIterator<Self>

Iterates over each tree in the IntoIterator, then over each node in each tree in a depth first postorder search.

This is equivalent to the following:

self.into_iter().flat_map(|tree| tree.dfs_postorder());

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T> OwnedIntoIteratorOfBinaryTrees<T> for Vec<T>

Source§

impl<const LEN: usize, T> OwnedIntoIteratorOfBinaryTrees<T> for [T; LEN]

Implementors§