MO417 - Questão para a prova oral
Número: 113
Enunciado: Uma forma de representar conjuntos disjuntos é utilizar florestas onde os conjuntos são representados por árvores enraizadas, com cada nó contendo um elemento e cada árvore representando um conjunto. Além disso, cada nó da árvore aponta apenas para seu pai e o nó raiz da árvore contém o elemento representante e é seu próprio pai.
Considere os algoritmos abaixo utilizados em operações de conjuntos disjuntos representados por florestas de conjuntos disjuntos. O pai de um nó x em uma árvore é dado por p[x].
MAKE-SET(x) 1 p[x] ← x 2 posto[x] ← 0 |
UNION(x, y) 1 x ← FIND-SET(x) 2 y ← FIND-SET(y) 3 if x ≠ y then 4 LINK(x,y) |
LINK(x, y) 1 if posto[x] > posto[y] then 2 p[y] ← x 3 else 4 p[x] ← y 5 if posto[x] = posto[y] then 6 posto[y] = posto[y] + 1 |
FIND-SET(x) 1 if x ≠ p[x] then 2 p[x] ← FIND-SET(p[x]) 3 return p[x] |
A 1 for i ← 1 to n do 2 MAKE-SET(xi) 3 for i ← 1 to n-1 by 2 do 4 UNION(xi, xi+1) 5 UNION(1, 3) 6 UNION(6, 8) 7 UNION(5, 8) |
B 1 for i ← 1 to n do 2 MAKE-SET(xi) 3 for i ← 1 to n-1 by 2 do 4 UNION(xi, xi+1) 5 UNION(8, 2) 6 UNION(6, 5) 7 UNION(3, 4) |
C 1 for i ← 1 to n do 2 MAKE-SET(xi) 3 for i ← 1 to n-1 by 2 do 4 UNION(xi, xi+1) 5 UNION(4, 6) 6 UNION(8, 2) 7 UNION(5, 2) |
D 1 for i ← 1 to n do 2 MAKE-SET(xi) 3 for i ← 1 to n-1 by 2 do 4 UNION(xi, xi+1) 5 UNION(1, 4) 6 UNION(5, 7) 7 UNION(2, 4) |
NDA |
Autor(a): Maikon Cismoski dos Santos