Professional Documents
Culture Documents
10
9
3
s 6
5
1 y
x
O arquivo que representará este grafo terá na primeira linha o número de vértices
seguido do número de arestas. Para o grafo acima teríamos: 5 8. Em seguida, cada linha
representará uma aresta com seu respectivo peso. Cada aresta será identificada pelos
vértices que são ligados pela mesma. Para o grafo acima teríamos em uma das linhas
por exemplo: x 9 v, indicando que há uma aresta que liga os vértices x e v com peso 9.
Entrada exemplo:
Arquivo (grafo)
5 8
s 10 u
s 5 x
u 3 x
u 1 v
x 1 y
s 7 y
x 9 v
y 6 v
No arquivo de saída, para cada caminho, teremos uma linha que começa com o
símbolo ‘>’, indicando que o que vem em seguida é o vértice que se alcança a partir da
raiz entrada pelo usuário, e a seguir o custo mínimo do caminho em questão. Nas linhas
1
seguintes teremos o caminho para se chegar da raiz até o vértice. Este caminho será a
sequência de vértices que o compõem. Supondo que o usuário tenha entrado o vértice s
como o vértice raiz, a saída para o exemplo dado aqui é descrita abaixo.
>v 9
s x u v
>u 8
s x u
>x 5
s x
>y 6
s x y
Obs. 1: Já será fornecida uma estrutura de dados para representar um grafo (será um
hash de listas). Esta estrutura deverá ser mantida. Faz parte do trabalho entendê-la para
então usá-la na implementação do algoritmo de dijkstra. Ou seja, os acréscimos
necessários para concluir o trabalho devem ser inteligentemente integrados à estrutura
fornecida. Caso seja necessária alguma mudança mais profunda nesta estrutura, o aluno
deverá justificar de forma convincente.
Obs. 2: Não serão aceitas funções soltas pelo programa, ou seja, deve-se utilizar o
mesmo paradigma passado aqui, isto é, o paradigma orientado a objetos. Assim, tudo
que você acrescentar deverá ser na forma de classes, métodos e atributos.
Obs. 3: O trabalho deve ser feito individualmente ou em dupla e deve ser entregue por
e-mail. Enviar um único email para frcerqueira@gmail.com com o assunto “INF610 –
TP xxxxx yyyyy” (com xxxxx e yyyyy substituídos pelo número de matrícula dos
autores do trabalho), contendo anexados os códigos em C++ do programa, devidamente
comentados.
Obs. 6: O aluno poderá (a critério do professor) ser chamado para entrevista, momento
em que deverá demonstrar conhecimento do programa que fez.
Obs. 7: Comece o mais cedo possível. Se tiver dúvidas me procure ou mande email.
Não deixe para última hora!