def algo(pocetak, kraj): ad = Data_Manager() z = ad.dajMiGradove() D = {} P = {} lock = {} open = {} for gradovi in z: D[gradovi] = float('inf') P[gradovi] = "" D[pocetak] = 0 r = z while len(r) > 0: Q = None GRAD = '' for SVEU in r: if Q == None: l = D[SVEU] Q = l GRAD = SVEU elif D[SVEU] < Q: p = D[SVEU] Q = p GRAD = SVEU r.remove(GRAD) removITALL = GRAD W = ad.dajMiSpoj(removITALL) for allIN in W: if allIN[1] == GRAD: intthFirstSpot = allIN[2] inttheLastSpot = allIN[0] xy = GRAD all = D[xy] + inttheLastSpot if D[intthFirstSpot] == float('inf'): D[intthFirstSpot] = all P[intthFirstSpot] = xy elif D[intthFirstSpot] > all: D[intthFirstSpot] = all P[intthFirstSpot] = xy to = [] m = kraj while m != pocetak: if to.count(m) == 0: veliko = m to.insert(0, veliko) node = P[veliko] else: break veratiTOALL = pocetak to.insert(0, pocetak) return (D[kraj], to)