Ahoj,
mám do školy udělat implementaci dijsktrova algoritmu a úplně si nevím rady s jednou věcí - mám tento kód napsaný
class Vertex:
def __init__(self, id, name):
self.id = id
self.name = name
class Edge:
def __init__(self, source, target, weight):
self.source = source
self.target = target
self.weight = weight
class Dijkstra:
def __init__(self):
self.vert_dict = {}
self.num_vertices = 0
def computePath(self, sourceId):
pass
def getShortestPathTo(self, targetId):
pass
def createGraph(self, vertexes, edgesToVertexes):
self.graph = {}
for vert in vertexes:
self.graph[vert] = []
for edge in edgesToVertexes:
self.graph[edge.source].append(edge)
def resetDijkstra(self):
pass
def getVertexes(self):
return self.vert_dict.keys()
A popis metod u třídy Dijkstra
createGraph(self, vertexes, edgesToVertexes) - metoda vytvoří graf ze zadaných vrcholů - toto myslím, že mám dobře
getVertexes(self) - metoda vrátí vrcholy, nad kterými je možné provést Dijkstrův algoritmus. TJ vrcholy, které jsou vytvořeny pomocí metody init - to si také myslím, že mám dobře
computePath(self, sourceId) - metoda nalezne nejkraští cesty ze zadaného vrcholu do všech vrcholů v grafu. Metoda nic nevrací, ale po skončení operace by měly mít všechny vrcholy vyplněnou proměnou minDistance, která reprezentuje minimální vzdálenost o zadaného vrcholu - tohle nevím jak udělat. Mohl by mi prosím někdo poradit?