Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Representação De Grafos, Notas de estudo de Informática

Matriz de adjacência; Listas de Adjacencia; Implementação. Grafos voltado para a computação By: Paulo Cesar Rodacki

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 15/09/2010

aramati-paz-5
aramati-paz-5 🇧🇷

5

(1)

14 documentos

1 / 16

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Teoria dos Grafos
Unidade 2:
Representação de Grafos
Prof. Dr. Paulo César Rodacki Gomes
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Representação De Grafos e outras Notas de estudo em PDF para Informática, somente na Docsity!

Teoria dos Grafos

Unidade 2:

Representação de Grafos

Prof. Dr. Paulo César Rodacki Gomes

[email protected]

Blibliografia

Joan M. Aldous, Robin J. Wilson. Graphs and

Applications : as introductory approach.

Springer. 2001

Thomas Cormen et al. Algoritmos : teoria e

prática. Ed. Campus. 2004.

Gross, J.L.,Yellen, J. Handbook of Graph

Theory , CRC Press, 2004.

Motivação

Até agora, vimos duas formas de representação de grafos:

definição dos conjuntos de vértices e arestas;

representação gráfica.

Existe alguma forma melhor, tendo em vista implementação

computacional?

A (^) B C y^ z x

V = {A, B, C, x, y, z}

E = { (A,x), (A,y), (A,z),

(B,x), (B,y), (B,z),

(C,x), (C,y), (C,z) }

Matrizes de Adjacência

A matriz de adjacência de um grafo simples G = (V, E)

é uma matriz quadrada, denotada por [A], de tamanho

n x n, com elementos definidos da seguinte forma:

es de adjacˆencia

jacˆencia, denotada por [ A], ´e uma matriz qu

ara um grafo simples G = (V, E), os elementos

inte forma:

a

i,j

1 , se (v

i

, v

j

) ∈ E;

0 , se (v

i

, v

j

) ∈/ E.

ao acima, cada v´ertice do grafo est´a associado a um

. Se houver aresta ligando dois v´ertices v

i

e v

j

Matrizes de Adjacência

Grafos dirigidos:

Uma matriz de adjacˆencia, denotada por [A], ´e uma ma manho n × n. Para um grafo simples G = (V, E), os ele definidos da seguinte forma: ai,j = ￿ 1 , se (v i , v j ) ∈ E; 0 , se (vi, vj ) ∈/ E. Pela definic˜ao acima, cada v´ertice do grafo est´a associa coluna da matriz. Se houver aresta ligando dois v´ertices elementos correspondentes `as linhas i e j da matriz possu grafos das figuras 2.1 e 2.2 ilustram este caso.

v

4

v

3 [A] =     0 1 1 2 1 0 1 0 1 1 1 0 2 0 0 0     Figura 2.3: Matriz de adjacˆencia de multigrafo

v

1

v

4

v

2

v

3 [A] =     0 0 1 0 1 0 2 0 0 0 0 1 1 0 1 1     v 2 v 3

[A] =

atriz de adjacˆencia de multigrafo dirigido

Matrizes de Adjacência

Multigrafos :

podemos considerar a matriz de adjacência como uma extensão

da definição para grafos simples, onde cada elemento ai,j

representa o número de arestas entre os vértices vi e vj

TAS DE ADJAC ˆ ENCIA 27 v 1 v 4 v 2 v 3 [A] =     0 1 1 2 1 0 1 0 1 1 1 0 2 0 0 0    

ENCIA

v 2 v 3

[A] =

Listas de Adjacência

A estrutura de listas de adjacência de um grafo

G = (V, E) consiste em um arranjo de n listas de

adjacência, denotadas por Adj[v] , uma para cada vértice

v do grafo.

Cada lista Adj[v] é composta por referências aos

vértices adjacentes a v , representando individualmente

as arestas do grafo.

As listas Adj[v] podem ser armazenadas em vetores,

listas encadeadas ou estruturas de conjuntos de

vértices.

Listas de Adjacência

Grafos não dirigidosCAP

ITULO 2. REPRESENTAC¸

AO DE GRAFOS

v 1 v 4 v 2 v 3 v 1 v 2 v 3 v 4 v 2 v 3 v 4 v 1 v 3 v 1 v 2 v 4 v 1 v 3

Figura 2.5: Listas de adjacˆencia de grafo simples

Observações (Gross, 2004)

a representação de um grafo G=(V, E) por matrizes de adjacência sempre ocupa espaço O(|V 2 |)

a representação de um grafo G=(V, E) por listas de adjacência ocupa espaço O(|V|+|E|)

para grafos esparsos, normalmente listas de adjacência são mais adequadas

Observações (Gross, 2004)

se o grafo G=(V, E) é denso, tanto as listas quanto as matrizes de adjacência ocupam espaço O(|V 2 |)

para testar a existência de uma aresta, matrizes de adjacência requerem tempo constante, enquanto que listas de adjacência levam tempo O(|V|)

note que nas listas de adjacência de grafos não dirigidos, uma aresta (u,v) aparece duas vezes, uma na lista de u e outra na lista de v

Exercícios

2. Faça a modelagem de classes para implementação de

grafos dirigidos e não dirigidos baseada no uso de

estruturas de dados dinâmicas (listas de adjacência);

3. Enumere todas as funcionalidades que se esperaria

de cada classe (por exemplo: criar vértice, remover

vértice, criar aresta, etc..)

4. Desenhe o diagrama de classes da modelagem feita

no exercício anterior;

5. Implemente o diagrama de classes em uma

linguagem orienteda a objetos.