Sei sulla pagina 1di 21

1

Algoritmos e Estruturas de Dados II


Grafos tipo abstrato de dados

Thiago A. S. Pardo
Profa. M. Cristina
Material de aula da Profa.
Josiane M. Bueno
2
Grafos
Tipo Abstrato de Dados
ltima aula: TAD grafo?
3
Grafos
Tipo Abstrato de Dados
ltima aula: TAD grafo?

Dados/informao (encapsulados)
Estruturas de dados adequadas

Operaes
4
Grafos
Estruturas de Dados
A escolha da estrutura de dados certa para
a representao de grafos tem um enorme
impacto no desempenho de um algoritmo.

H duas representaes usuais:
Matriz de Adjacncias
Listas de Adjacncias
5
Grafos
Matriz de Adjacncias
Dado um grafo G = (V, E) , a matriz de
adjacncias M uma matriz de ordem
|V|x|V|, tal que:

|V| = nmero de vrtices
M[i,j] = 1, se existir aresta de i a j
M[i,j] = 0, se NO existir aresta de i a j

6
Grafos
Matriz de Adjacncias
Qual a matriz de adjacncias do grafo a
seguir?
5
1 2
4
3
7
Grafos
Matriz de Adjacncias
Resposta:
Grafo no direcionado
Matriz simtrica
8
Grafos
Matriz de Adjacncias
Se o grafo for direcionado

M[i,j] deve indicar ou no a presena de uma
aresta divergente de i e convergente em j, ou
seja i j
9
Grafos
Matriz de Adjacncias
Qual a matriz de adjacncias do dgrafo a
seguir?
5
1 2
4
3
10
Grafos
Matriz de Adjacncias
Possvel resposta:
Matriz
assimtrica
0 1 0 0 0
0 0 0 1 1
1 0 0 0 0
0 0 1 0 0
0 0 0 1 0
1 2 3 4 5
1
2
3
4
5
11
Grafos
Matriz de Adjacncias
Se o grafo for valorado

M[i,j] deve conter o peso associado com a aresta

Se no existir uma aresta entre i e j, ento
necessrio utilizar um valor que no possa ser
usado como peso (como o valor 0 ou negativo,
por exemplo)
12
Grafos
Matriz de Adjacncias
Qual a matriz de adjacncias do grafo direcionado e
valorado a seguir? Suponha que o grafo represente
a distncia em km entre cidades
5
1 2
4
3
50
10
12
8
10
13
Grafos
Matriz de Adjacncias
Possvel resposta:
Grafo simtrico
ou assimtrico?
-1 10 -1 -1 -1
-1 -1 -1 8 12
50 -1 -1 -1 -1
-1 -1 0 -1 -1
-1 -1 -1 10 -1
1 2 3 4 5
1
2
3
4
5
14
Grafos
Matriz de Adjacncias
Forma mais simples de representao

Propriedades
armazenamento: ?
teste se aresta (i,j) est no grafo: ?
15
Grafos
Matriz de Adjacncias
Forma mais simples de representao

Propriedades
armazenamento: O(|V|
2
)
teste se aresta (i,j) est no grafo: O(1)
16
Grafos
Matriz de Adjacncias
Representao til para grafos densos

Boa para quando desejamos buscar arestas
rapidamente

Ruim quando se necessita examinar a matriz toda:
O(|V|
2
)

Insero e remoo de vrtices e arestas:
representao boa ou ruim?
17
Grafos
Matriz de Adjacncias
Ateno

No incomum encontrar representaes de
dgrafos em matrizes de adjacncias em que a
coluna aponta para a linha

Representao ao gosto do cliente!
18
Grafos
Exerccio de Fixao
Represente os grafos acima utilizando
matrizes de adjacncias
19
Grafos
Matriz de Adjacncias
Implementao de algumas das operaes mais
comuns
Criar grafo vazio
Inserir aresta
Retirar aresta
Existe aresta?
Obter lista de vrtices adjacentes a um determinado vrtice
Lista est vazia?
Retornar primeiro vrtice da lista
Retornar prximo vrtice adjacente da lista
Imprimir grafo
20
Grafos
Matriz de Adjacncias
Exerccio

Implementar sub-rotina que encontre a aresta de
menor peso em um grafo valorado
21
Grafos
Matriz de Adjacncias
Questo

Cada grafo associa-se a uma nica matriz de
adjacncia. O inverso verdade?

Potrebbero piacerti anche