You are on page 1of 2

// Questo 1

Vamos verificar se as seguintes sequncias de vrtices correspondem a uma busca


em largura, profundidade ou ambos.

a) F, C, H, A, B, G, E, D

Busca em largura:
1. Comea com o vrtice F
2. F visita os vizinhos dele (C e H)
3. C visita os vizinhos dele (A, B, G e E)
4. H visita os vizinhos dele (D)

Busca em profundidade:
1. Comea com o vrtice F
2. F visita o vizinho C
3. C visita o vizinho A (ERRADO)

Logo, temos somente uma busca em largura.

b) F, H, A, C, E, G, B, D

Busca em largura:
1. Comea com o vrtice F
2. F visita os vizinhos dele (C e H) (ERRADO)

Busca em profundidade:
1. Comea com o vrtice F
2. F visita o vizinho H
3. H visita o vizinho A
4. A visita o vizinho C
5. C visita o vizinho E
6. E visita o vizinho G
7. G visita o vizinho B
8. B visita o vizinho D

Logo, temos somente uma busca em profundidade.

c) F, C, H, A, B, D, E, G

Busca em largura:
1. Comea com o vrtice F
2. F visita os vizinhos dele (C e H)
3. C visita os vizinhos dele (A, B, G e E) (ERRADO)

Busca em profundidade:
1. Comea com o vrtice F
2. F visita o vrtice C
3. C visita o vrtice H (ERRADO)

Logo, no temos nem uma busca nem a outra.

d) C, A, H, D, B, G, E, F

Busca em largura:
1. Comea com o vrtice C
2. C visita os vizinhos dele (A, B, G e E) (ERRADO)

Busca em profundidade:
1. Comea com o vrtice C
2. C visita o vizinho A
3. A visita o vizinho H
4. H visita o vizinho D
5. D visita o vizinho B
6. B visita o vizinho G
7. G visita o vizinho E
8. C visita o vizinho F

Logo, temos somente uma busca em profundidade.

// Questo 2

A afirmao falsa. O algoritmo de busca em largura funciona da seguinte forma:


ele visita os vizinhos do vrtice atual, guarda eles e visita os vizinhos dos
que foram guardados. Logo, o algoritmo localiza primeiro os vrtices que esto
mais proximos do vrtice de origem da busca.

// Questo 3

DFS (V, A)
1. for each vertex u in V
2. color[u] WHITE
3. for each vertex u in V
4. if color[u] = WHITE then
5. if DFS-Visit(u) = 0 then
6. return 0
7. return 1

DFS-Visit(u)
1. color[u] GRAY
2. for each vertex v adjacent to u
3. if color[v] = WHITE then
4. if DFS-Visit(v) = 0 then
5. return 0
6. else if color[v] = GRAY then
7. return 0
8. color[u] BLACK
11. return 1

You might also like