Implement a binary tree and perform a breadth first traversal on it's nodes.
The tree is not guaranteed to be full, balanced, or sorted.
Implement depth first traversal.
Support traversal in both directions (left -> right, right -> left).
Implement a binary search tree.