Advertisement
Guest User

Untitled

a guest
May 18th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 1.93 KB | None | 0 0
  1. function algorytmDijkstry!(graf, poczatek, koniec, odwiedzone, dystanse, przodkowie)
  2.     if poczatek == koniec
  3.         sciezka=[]
  4.         while (koniec != nothing)
  5.             append!(sciezka,koniec)
  6.             koniec=get(przodkowie,koniec,nothing)
  7.         end
  8.         return (reverse(sciezka));
  9.     end
  10.     if isempty(odwiedzone)
  11.         dystanse[poczatek]=0
  12.         for sasiad in keys(graf[poczatek])
  13.         if !(sasiad in odwiedzone)
  14.             odlegloscSasiada=get(dystanse,sasiad,99999)
  15.             testOdleglosc = dystanse[poczatek]+graf[poczatek][sasiad]
  16.             if(testOdleglosc < odlegloscSasiada)
  17.                 dystanse[sasiad]=testOdleglosc;
  18.                 przodkowie[sasiad]=poczatek;
  19.             end
  20.         end
  21.     end
  22.     append!(odwiedzone,poczatek)
  23.     nieOdwiedzone = Dict{}();
  24.     for i in graf
  25.         if !(i in odwiedzone)
  26.             nieOdwiedzone[i]=get(dystanse,i,99999);
  27.         end
  28.     end
  29.     najblizszyWezel=collect(keys(dystanse))[indmin(collect(values(dystanse)))]
  30.     # return algorytmDijkstry(graf,najblizszyWezel,koniec,odwiedzone,dystanse,przodkowie)
  31.     return algorytmDijkstry(graf,start,koniec,odwiedzone,dystanse,przodkowie)
  32. end
  33. #
  34. # # dict = Dict("a"=>(Dict("c"=>14), Dict("d"=>7), Dict("e"=>2) ))
  35. # # dict = Dict("a"=>(Dict("c"=>14)))
  36. #
  37. #
  38. graf =
  39. (Dict("a"=> (Dict("c"=>14,"d"=>7, "e"=>2) ),
  40. "b"=> (Dict("c"=>9,"f"=>6) ),
  41. "c"=> (Dict("a"=>14,"b"=>9, "e"=>2) ),
  42. "d"=> (Dict("a"=>7,"e"=>10, "f"=>15) ),
  43. "e"=> (Dict("a"=>9,"c"=>2, "d"=>10, "f"=>11) ),
  44. "f"=> (Dict("b"=>6,"d"=>15, "e"=>11) )));
  45.  
  46.  
  47. odwiedzone = []
  48. dystanse=Dict{}()
  49. przodkowie=Dict{}()
  50.  
  51. algorytmDijkstry(graf,"a","b",odwiedzone,dystanse,przodkowie)
  52.  
  53.  
  54.  
  55. # function algorytmDijkstry(graf, poczatek, koniec, odwiedzone, dystanse, przodkowie)
  56. # print(dystanse)
  57. # end
  58.  
  59. # return (algorytmDijkstry(graf,"b","c",odwiedzone,dystanse,przodkowie))
  60. #
  61. #
  62. # algorytmDijkstry(graf,"b","c",odwiedzone,dystanse,przodkowie)
  63. #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement