Dijkstra's algorithm: Difference between revisions

m
(added haskell)
Line 750:
| otherwise = aux (previous ! vertex) (vertex : acc)
 
adj_list :: Array IntChar [(IntChar, Int)]
adj_list = listArray (0'a', 5'f') [ [(1'b',7), (2'c',9), (5'f',14)],
[(0'a',7), (2'c',10), (3'd',15)],
[(0'a',9), (1'b',10), (3'd',11), (5'f',2)],
[(1'b',15), (2'c',11), (4'e',6)],
[(3'd',6), (5'f',9)],
[(0'a',14), (2'c',2), (4'e',9)] ]
 
main :: IO ()
main = do
let (min_distance, previous) = dijkstra 0'a' (-1)' ' adj_list
putStrLn $ "Distance from 0a to 4e: " ++ show (min_distance ! 4'e')
let path = shortest_path_to 4'e' (-1)' ' previous
putStrLn $ "Path: " ++ show path</lang>
 
Anonymous user