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?