Problema general: dado un grafo especificado en un archivo, su programa listara los costos para llegar a cada nodo desde el nodo 0.
La especificacion del grafo se encuentra en un archivo que se especifica
en la linea de comandos de su programa. Un ejemplo de ejecucion es:
%sp graph.txt
Formato de entrada
El formato del archivo de entrada es:
{<numero entero> <numero entero> <peso>CR}+
Es decir cada linea un arco del grafo representado por dos numeros enteros.
Los vertices son numeros enteros de 0 a N-1. 0 es el nodo desde el caul
se desea obtener las rutas mas cortas. El peso es un numero real en el intervalo
abierto (0 , 1.0)
Se asume que el archivo esta bien creado de modo, por ejemplo que no hay
saltos en los numeros de vertices usados y que el grafo es conexo.
Para probar su programa haga uso del siguiente archivo graph.txt . Su tarea sera revisada con otro grafo de prueba ademas de este.
Formato de salida
La salida de su programa debe mostrar una linea del tipo
<nodo> <distancia> CR
para cada nodo entre 0 y N-1.
Para que usted desarrolle esta tarea se recomienda ver las siguientes función GRAPHpfs y luego hacer una busqueda de las funciones que esta funcion emplea. (por ejemplo PQempty). Busque este material de ayuda en algs3c5.txt y en algs3c.txt
Archivos a entregar
Analogo a las otras tareas.
Algoritmos tomados desde el texto y que apuntan al problema
a resolver
Observación: Para simplificar las cosas y ganar en rapidez, se publican
las páginas enteras sin mayor edición.
Programa 21.1: Algoritmo de Dijkstra para grafos implementados
con listas de adyacencia
.
Programa 20.4: Priority first search para grafos implementados
con listas de adyacencia
.
Programa 9.11: Contiene la especificación del
ADT (seccion 9.6)
Programa 9.12: Contiene la implemntación de la
cola de prioridad indicada en 9.11
Programa 9.14: Este muestra la cola de prioridad usando
árbol binario
Programa 9.15: Continuación de la implementación
de cola de prioridad usando árbol binario
.