Depth first searching is an algorithm that searches a tree or graph from the top to the bottom. The left child of each node is evaluated first, followed by all of its children and then the right children are evaluated. The right most node in the structure is evaluated last. Usually, a stack is used to implement this form of searching.