Magna Concursos
2882305 Ano: 2010
Disciplina: TI - Desenvolvimento de Sistemas
Banca: CESGRANRIO
Orgão: Petrobrás

O pseudocódigo abaixo é uma forma simplificada de um algoritmo de busca breadth-first de um grafo direcionado. O procedimento bfs(N,Adj) recebe como entradas o inteiro N e a matriz NxN Adj, significando, respectivamente, o total de vértices do grafo, sendo estes numerados de 1 até N, e a matriz de adjacência. Se Adj(u,v) = 1, existe um arco direcionado que liga o vértice u ao vértice v. O procedimento preenche os vetores cor e !$ pi !$, indexados de 1 até N. Durante o procedimento de busca, utiliza-se a fila Q, do tipo FIFO (First-In-First-Out). O procedimento ENQUEUE(Q,u) insere o elemento u ao final da fila Q e o procedimento u !$ ightarrow !$ DEQUEUE(Q) remove o elemento u do início da fila Q.

bfs(N,Adj)

Para u de 1 até N faça

cor[u] !$ ightarrow !$ branco;

!$ pi !$ [u] !$ ightarrow !$ 0;

Fim-Para

cor[1] !$ ightarrow !$ 0;

Q !$ ightarrow !$ !$ varnothing !$;

ENQUEUE(Q,1);

Enquanto Q !$ e !$ !$ varnothing !$ faça

u !$ ightarrow !$ DEQUEUE(Q);

Para v de 1 até N faça

Se Adj(u,v) = 1 e cor[v] = branco faça

ENQUEUE(Q,v);

cor[v] !$ ightarrow !$ cinza;

!$ pi !$ [v] !$ ightarrow !$ u;

Fim-Se

Fim-Para

cor[u] !$ ightarrow !$ preto;

Fim-Enquanto

Fim

O resultado do vetor !$ pi !$ após a aplicação do procedimento bfs, com entradas !$ { egin {bmatrix} 0 ,, 1 ,, 1 ,, 0 \ 0 ,, 0 ,, 1 ,, 0 \ 0 ,, 0 ,, 0 ,, 1 \ 1 ,, 1 ,, 0 ,, 0 end {bmatrix}} !$, é

 

Provas

Questão presente nas seguintes provas

Engenheiro de Equipamentos - Eletrônica

120 Questões