Tarea de programacion Nro. 3: SP Camino mas corto en un grafo: Algoritmo de Dijkstra

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 .