pub trait OwnedIntoIteratorOfBinaryTrees<T>: IntoIterator<Item = T> + Sizedwhere
T: OwnedBinaryTreeNode,{
// 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§
Sourcefn at_path(self, path: &[usize]) -> Option<T>
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));
Sourcefn bfs_each(self) -> OwnedBinaryBFSCollectionIterator<Self> ⓘ
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());
Sourcefn dfs_preorder_each(self) -> OwnedBinaryDFSPreorderCollectionIterator<Self> ⓘ
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());
Sourcefn dfs_inorder_each(self) -> OwnedDFSInorderCollectionIterator<Self> ⓘ
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());
Sourcefn dfs_postorder_each(self) -> OwnedBinaryDFSPostorderCollectionIterator<Self> ⓘ
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.