**Depth-first search** always expands the deepest node in the current frontier of the search tree

The **search proceeds** immediately to the deepest level of the search tree, where the nodes have no successors. As those nodes are expanded, they are dropped from the frontier, so then the search “backs up” to the next deepest node that still has unexplored successors

The **depth-first search algorithm** is an instance of the graph-search algorithm whereas breadth-first-search uses a **FIFO **queue, depth-first search uses a **LIFO **queue. A **LIFO** queue means that the most recently generated node is chosen for expansion. This must be the deepest unexpanded node because it is one deeper than its parent—which, in turn, was the deepest unexpanded node when it was selected

The ** time complexity** of depth-first graph search is bounded by the size of the state space (which may be infinite, of course). A depth-first tree search, on the other hand, may generate all of the

**O(b**nodes in the search tree, where m is the maximum depth of any node; this can be much greater than the size of the state space. Note that m itself can be much larger than d (the depth of the shallowest solution) and is infinite if the tree is unbounded

^{m})A variant of depth-first search called **backtracking search** uses still less memory

In **backtracking**, only one successor is generated at a time rather than all successors; each partially expanded node remembers which **successor **to generate next. In this way, only **O(m)** memory is needed rather than O(b^{m}). **Backtracking search** facilitates yet another memory-saving (and time-saving) trick: the idea of generating a successor by modifying the current state description directly rather than copying it first. This reduces the memory requirements to just one state description and **O(m)** actions. For this to work, we must be able to undo each modification when we go back to generate the next successor. For problems with large state descriptions, such as robotic assembly, these techniques are critical to success