Depth-first search applies operators to
each newly generated state, trying to drive directly toward the goal.
- Low storage requirement: linear with tree depth.
- Easily programmed: function call stack does most of
the work of maintaining state of the search.
- May find a sub-optimal solution (one that is deeper or more
costly than the best solution).
- Incomplete: without a depth bound, may not find a
solution even if one exists.