Module: Pesquise em profundidade. DFS


Problem

1/12

DFS: Iniciando (C++)

Theory Click to read/hide

DFS DFS
A pesquisa em profundidade (DFS) é um dos principais algoritmos em gráficos. O algoritmo é executado em O(N + M).
 
Algoritmo
Para começar, começamos do topo, consideramos os filhos deste topo e, se nunca os inserimos, iniciamos o DFS a partir deles.


Problem

Escreva um procedimento void dfs (int v) que percorra a profundidade de um gráfico não direcionado a partir do vértice inicial S e mostre todos os vértices em ordem de passagem, começando no vértice S separados por um espaço em uma linha.

A primeira linha contém três números N  - o número de vértices no grafo, M - o número de arestas, S - o início vértice. Nas seguintes linhas M, 2 variáveis ​​Ui e Vi são fornecidos , descrição das arestas do gráfico. Todos os números na entrada não excedem 1000.

Gere todos os vértices na ordem de passagem por DFS.

No programa acima, g[i][j] significa que existe uma aresta entre os vértices i e j, e em o array used marcamos se visitamos este pico.