Disciplina: TI - Organização e Arquitetura dos Computadores
Banca: CESGRANRIO
Orgão: Transpetro
O seguinte pseudocódigo é uma forma simplificada do algoritmo de busca depht first num grafo direcionado. O procedimento principal dfs(N,Adj) recebe como entrada o inteiro N e a matriz Adj, de dimensões NxN. Adj(u,v) representa o elemento da linha u e coluna v da matriz Adj. O procedimento dfs(N,Adj) faz a chamada recursiva do procedimento dfs-visit(u), onde u é um inteiro de 1 a N. Ao término dos dois procedimentos, os vetores cor e b, indexados pelos inteiros u de 1 até N, são preenchidos de acordo com a regra de busca prevista no algoritmo.
dfs(N,Adj)
Para u de 1 até N
cor[u] !$ \leftarrow !$ branco
b[u] !$ \leftarrow !$ 0
Fim-Para
Para u de 1 até N
Se cor[u] = branco
dfs_visit(u)
Fim-Se
Fim-Para
Fim
dfs-visit(u)
cor[u] !$ \leftarrow !$ cinza
Para v de 1 até N
Se (Adj(u,v) = 1) e (cor[v] = branco)
b[v] !$ \leftarrow !$ u
dfs_visit(v)
Fim-Se
Fim-Para
cor[u] !$ \leftarrow !$ preto
Fim
O resultado do vetor b após a aplicação do procedimento principal para N=6
e !$ Adj = \begin{bmatrix} 0 & 1 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix} !$
é