# Trees

See: Binary Search Tree Algorithms (including Insert, Delete, Search, Min Value, Max Value, Traverse and Rotate)

A Tree is a **Collection of Nodes**.

## Nodes

A Node has a **value** and a **Set of references**
to zero or more other Nodes called "children".

A Node with **NO references TO other Nodes** is called a **Leaf Node**.

A Node with **NO references FROM other Nodes** is called the **Root Node**.
Every Tree has **exactly one Root Node**.

Every Node in a Tree is referenced by **exactly one "parent"** Node.

A Tree with `n` Nodes is **balanced** when it's height is `O(log(n))`

Different types of Trees have different constraints on the Nodes it contains. Here are some examples.