trees 0.4.2

General purpose tree data structures
# Forest

A `Forest` is composed of zero or more `Node`s. An empty forest is constructed
via `Forest::new()`.

## Children

A `Forest` can be considered as a list of `Node`s, 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.