Dijkstra algorithm C language implementation