Tree

Tree is composed of one or more Nodes. A tree is always non-empty.

Tree root

Tree can be constructed from a root value of type T, which can be accessed later via root() and root_mut().

Children

Tree can insert/delete child Nodes at front/back of its children list, which is a conceptual Forest and can be removed once the abandon() is called.

Degree

The amount of child nodes of a tree is called tree's degree().

The amount of all nodes of a tree is returned by node_count().

Breadth first search

A Tree may be converted to an owning iterator via into_bfs(), which iterates all its nodes in the manner of breadth first search.