Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function algorytmDijkstry!(graf, poczatek, koniec, odwiedzone, dystanse, przodkowie)
- if poczatek == koniec
- sciezka=[]
- while (koniec != nothing)
- append!(sciezka,koniec)
- koniec=get(przodkowie,koniec,nothing)
- end
- return (reverse(sciezka));
- end
- if isempty(odwiedzone)
- dystanse[poczatek]=0
- for sasiad in keys(graf[poczatek])
- if !(sasiad in odwiedzone)
- odlegloscSasiada=get(dystanse,sasiad,99999)
- testOdleglosc = dystanse[poczatek]+graf[poczatek][sasiad]
- if(testOdleglosc < odlegloscSasiada)
- dystanse[sasiad]=testOdleglosc;
- przodkowie[sasiad]=poczatek;
- end
- end
- end
- append!(odwiedzone,poczatek)
- nieOdwiedzone = Dict{}();
- for i in graf
- if !(i in odwiedzone)
- nieOdwiedzone[i]=get(dystanse,i,99999);
- end
- end
- najblizszyWezel=collect(keys(dystanse))[indmin(collect(values(dystanse)))]
- # return algorytmDijkstry(graf,najblizszyWezel,koniec,odwiedzone,dystanse,przodkowie)
- return algorytmDijkstry(graf,start,koniec,odwiedzone,dystanse,przodkowie)
- end
- #
- # # dict = Dict("a"=>(Dict("c"=>14), Dict("d"=>7), Dict("e"=>2) ))
- # # dict = Dict("a"=>(Dict("c"=>14)))
- #
- #
- graf =
- (Dict("a"=> (Dict("c"=>14,"d"=>7, "e"=>2) ),
- "b"=> (Dict("c"=>9,"f"=>6) ),
- "c"=> (Dict("a"=>14,"b"=>9, "e"=>2) ),
- "d"=> (Dict("a"=>7,"e"=>10, "f"=>15) ),
- "e"=> (Dict("a"=>9,"c"=>2, "d"=>10, "f"=>11) ),
- "f"=> (Dict("b"=>6,"d"=>15, "e"=>11) )));
- odwiedzone = []
- dystanse=Dict{}()
- przodkowie=Dict{}()
- algorytmDijkstry(graf,"a","b",odwiedzone,dystanse,przodkowie)
- # function algorytmDijkstry(graf, poczatek, koniec, odwiedzone, dystanse, przodkowie)
- # print(dystanse)
- # end
- # return (algorytmDijkstry(graf,"b","c",odwiedzone,dystanse,przodkowie))
- #
- #
- # algorytmDijkstry(graf,"b","c",odwiedzone,dystanse,przodkowie)
- #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement