Forest
A Forest is composed of zero or more Nodes. An empty forest is constructed
via Forest::new().
Children
A Forest can be considered as a list of Nodes, with the ability of
inserting/deleting child nodes at its front/back: push_front(), push_back(),
pop_front() and pop_back(). The first and last child can be accessed via
front()/front_mut() and back()/back_mut().
A forest can merge another one via prepend() or append().
Forest's children can be iterated via iter()/iter_mut()/into_iter().
Degree
The amount of child nodes of a forest is called forest's degree().
A forest has_no_child() if its degree is 0.
The amount of desendant nodes of a forest is returned by node_count().
Breadth first search
A Forest may provide bfs()/bfs_mut()/into_bfs(), which iterate all
its child nodes in the manner of breadth first search.