Sunteți pe pagina 1din 4

UNIVERSIDADE FEDERAL DO PARA

INSTITUTO DE CIENCIAS EXATAS E NATURAIS


PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO
DISCIPLINA: TEORIA DA COMPUTAÇÃO - GRAFOS

REPRESENTAÇÃO COMPUTACIONAL DE
GRAFOS

Aluna: Marisa Moreno

Belém – PA
2010
Representação Computacional de Grafos

Grafos podem ser representados computacionalmente por meio de


Matrizes e de Listas. A representação por Listas pode ser feita utilizando-se
Lista Ligada, Lista de Arestas e Lista de Adjacência.
Este trabalho mostra uma comparação entre os modelos de
representação de Lista Ligada apresentado por Cormen et al. (2002) e de Lista
de Arestas e Lista de Adjacência propostos por Tamassia e Goodrich (2005).

Lista Ligada

Segundo Cormen et al. (2002), uma Lista Ligada é chamada de Lista de


Adjacência. Essa lista é uma estrutura mista constituída de um vetor |V| que
representam os vértices de um grafo e de listas que contém seus vértices
adjacentes.
Sendo um grafo G=(V, E), para todo u ∈ V existe uma lista de adjacência
Adj[u] com todos os vértices v das arestas (u, v) pertencentes a E. Assim,
Adj[u] contém todos os vértices adjacentes ao vértice u do grafo G=(V, E).
A Figura 1 mostra um grafo com cinco vértices e sua representação por
meio de listas ligadas.

Figura 1: (a) Grafo G; (b) Lista Ligada – Cormen et al. (2002).

Lista de Arestas

Para Tamassia e Goodrich (2005) uma lista de arestas é provavelmente


o modelo mais simples de representação de um grafo G, apesar de não ser a
forma mais eficiente. Tal representação admite que exista uma coleção V de
objetos do tipo vértice e que arestas são representadas por uma coleção E de
objetos do tipo arestas. Cada objeto do tipo aresta referencia sua posição em
E, além de possuir também uma referência para os vértices associados às
extremidades da aresta.
A principal característica apresentada pela Lista de Arestas, segundo
Tamassia e Goodrich (2005), é que esse tipo de representação computacional
provê acesso direto das arestas aos vértices nos quais incidem.
Um grafo G e sua respectiva representação por meio de Lista de Aresta
são apresentados na Figura 2.

2
Figura 2: (a) Grafo G; (b) Lista de Arestas – Tamassia e Goodrich. (2005).

Lista de Adjacências

Tamassia e Goodrich (2005) consideram que uma Lista de Adjacências


apresenta a mesma estrutura de uma Lista de Arestas. A esse modelo de
representação foi acrescido aos objetos do tipo vértice uma referência para a
coleção de incidência I(v), que tem a função de referenciar todas as arestas
incidentes em v. Aos objetos do tipo aresta, foram adicionados referências às
coleções de incidências I(v) e I(u), sendo v e u vértices incidentes na aresta.
A Figura 3 mostra um grafo G e sua representação por meio de Lista de
Adjacências.

Figura 3: (a) Grafo G; (b) Lista de Adjacências – Tamassia e Goodrich. (2005).

Comparação entre tipos de Representação Computacional de Grafos

O espaço de armazenamento necessário para se implementar uma Lista


Ligada, é de O(n + 2*m) para grafos não orientados e O(n + m) para grafos
orientados. As listas de Arestas e de Adjacências utilizam o espaço de
armazenamento equivalente à O(n + m).
Normalmente as Listas de Adjacências apresentam um desempenho
computacional superior quando comparadas aos outros tipos de representação
apresentadas neste trabalho, uma vez que o acesso entre vértices e arestas é
bidirecional, permitindo acesso direto e proporcionando certa facilidade quando
da realização de operações sobre os elementos que compõem os grafos.

Bibliografia:

CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Introduction to


Algorithms. 2nd ed. 2002.

3
TAMASSIA, R.; GOODRICH, M. Data Structure and Algorithms in Java. 4th
ed. 2005.

S-ar putea să vă placă și