## DFS and BFS

**Depth-first search** (*DFS*) is an algorithm for traversing or searching tree or
graph data structures. The algorithm starts at the root node (*selecting some
arbitrary node as the root node in the case of a graph<*) and explores as far as
possible along each branch before backtracking.

**Breadth-first search** (*BFS*) is an algorithm for searching a tree or graph data
structure for a node that satisfies a given property. It starts at the tree
root and explores all nodes at the present depth prior to moving on to the
nodes at the next depth level.

Given the above descriptions, iImplement **DFS** and **BFS**.

## Solution

## Helpers