[!NOTE] Algoritmo de busca em profundidade
O algoritmo de busca em profundidade, ou Busca em Profundidade, é um método para explorar um grafo, visitando todos os seus vértices e arestas de forma sistemática.
O algoritmo começa em um vértice raiz arbitrário e segue um caminho o mais longe possível, retrocedendo quando não há mais vértices não visitados nesse caminho. O algoritmo usa uma pilha para armazenar os vértices que ainda precisam ser visitados e marca cada vértice com um número de ordem quando é descoberto. O algoritmo termina quando todos os vértices do grafo foram explorados. O pseudo-algoritmo abaixo mostra como o algoritmo de busca em profundidade funciona.
```python
procedure DFS_iterative(G, v) is
let S be a stack
S.push(v)
while S is not empty do
v = S.pop()
if v is not labeled as discovered then
label v as discovered
for all edges from v to w in G.adjacentEdges(v) do
S.push(w)
```
- [[Algoritmo de busca em profundidade em Python]]
**:: Referência ::** [Busca em profundidade - Wikipedia](https://en.wikipedia.org/wiki/Depth-first_search)