Número: 2013-
Enunciado: Dado um grafo simples
e não-orientado G = (V, E), cujo número
de componentes conexos é 1, o algoritmo abaixo retorna um grafo
caminho Gp = (Vp,
Ep), tal que Vp =
V. Considere que o algoritmo usa a representação por lista
de adjacência; que a expressão G.V[i] retorna
o i-ésimo vértice em V; que a expressão G.Adj[v][i]
retorna o i-ésimo vértice da lista de adjacência do vértice
v; que o grau mínimo dos
vértices de G é 2.
1
toPathGraph(G)
2 Let Gp
be a new Graph
3 for each v Є
G.V
4 v.color =
WHITE
5 Gp.V
= G.V
6 v = G.V[1]
7 v.color =
BLACK
8 For i
= 1 to |V|-1
9 j
= 1
10 do
11 u
= G.Adj[v][j]
12 j
= j + 1
13 while
u.color == BLACK
14 Gp.Adj[v]
← u
15 Gp.Adj[u]
← v
16 v
= u
17 v.color
= BLACK
18 return
Gp
É incorreto afirmar que:
- Seu tempo de execução é Ω(|V|), onde |V| é o número de vértices de G.
- O grafo Gp resultante possui |V| arestas.
- O algoritmo não estaria mais correto se o grau mínimo dos vértices fosse 1.
- Dado as restrições, é impossível que j, na linha 11, seja maior que |G.Adj[v]|, ou seja, maior que o grau do vértice v.
- N.D.A.
Ideia
original de: Paulo Henrique Hack de Jesus
Nenhum comentário:
Postar um comentário