Buscar

Prévia do material em texto

INSTITUTO FEDERAL DO ESPÍRITO SANTO
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
ARTHUR DELPUPO E MATHEUS T. DE AGUIAR
TÉCNICAS DE PROGRAMAÇÃO AVANÇADA
Relatório referente ao primeiro envio do trabalho sobre grafos.
Serra - ES
2022
Introdução
Um grafo é uma estrutura de dados composta por nós e arestas, usada
comumente para representar a realidade, como por exemplo um sistema rodoviário
que liga cidades. Dentre as diversas formas para implementar um grafo, a
linguagem utilizada foi Java, fazendo uso do conceito de generics.
Foram apresentadas as seguintes formas de implementação dessa estrutura
de dados: Listas de Adjacências, Matriz de Adjacências e Listas de Arestas. Após
uma análise das três formas, levantando em consideração vantagens e
desvantagens atreladas a cada natureza de implementação, optamos por escolher
primeira forma, visto que consideramos a melhor forma de implementação, visto que
consiste na criação de um vetor para cada vértice, cujo esse vetor tem
conhecimento dos vértices conectados a ele. Ademais, é relevante frisar que o grafo
implementado era duplamente encadeado, conexo e, portanto, facilitando o
desenvolvimento.
Como fator decisivo à escolha, levamos em conta a sua facilidade de
implementação, todavia é a menos lógica dentre as demais, ao menos na visão do
nosso grupo. Ademais, dentre as soluções disponíveis, não era a mais eficiente,
visto que a forma utilizando matrizes é mais rápida na montagem e em tempo de
execução, bem como econômica. Apesar de em uma primeira análise a lista de
adjacências parecer confusa, depois de entendida esta forma se torna prática e
intuitiva.
Visando facilitar a compreensão da forma implementada, tomemos por
exemplo o seguinte grafo abaixo:
figura 1: exemplo ilustrativo de grafo genérico utilizado na implementação
A Lista de Adjacências
A lista de adjacências consiste em escrever para cada número de linha e
seus vértices que tem “conhecimento”, da seguinte maneira:
1. 2, 3
2. 1, 3, 4
3. 1, 2
4. 2, 5
5. 4
Em outra visão ficaria organizada da seguinte forma:
1 2 3 4 5
1 2 3
2 1 3 4
3 1 2
4 2 5
5 4
tabela 1: tabela representando a disposição dos vértices e arestas de um grafo genérico
A estrutura é composta por três classes genéricas, sendo elas: Grafo, Vértice
e Aresta.
● A classe vértice armazena o valor do vértice e também uma lista com os
destinos dos vértices.
● A classe aresta possui um objeto do tipo vértice e também armazena os
pesos (distância entre as arestas).
● A classe grafo armazena uma lista de vértices.
Conclusão
Sendo assim, de acordo com as informações previamente citadas, conclui-se
que os grafos são estruturas de dados muito importantes para a organização e
armazenamento de dados, existem diversas formas de implementação cada uma
delas possuindo suas vantagens e desvantagens. O trabalho agregou uma nova
ótica ao grupo quanto a essa estrutura de dados.

Mais conteúdos dessa disciplina