Graphs
Depth-First Search
This algorithm starts at a specified vertex and
goes as deep into the graph as it can before
backtracking.
This means that after visiting the starting vertex,
it goes to an unvisited vertex that is adjacent to
the one just visited.
The algorithm continues from this way until it
has gotten as far as possible before returning to
visit the next unvisited vertex adjacent to the
starting place.