[!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)