Dijkstra shortest path algorithm c language source code