Skip to content

Commit f9bf655

Browse files
committed
Handled names
2 parents bcf5bed + 65f0d0c commit f9bf655

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

graphs/johnson_graph.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,10 @@ def bellman_ford(self, start: str) -> dict:
6060

6161
for vertex_a in self.graph:
6262
for vertex_a, vertex_b, weight in self.edges:
63-
if (distances[vertex_a] != sys.maxsize - 1 and
64-
distances[vertex_a] + weight < distances[vertex_b]):
63+
if (
64+
distances[vertex_a] != sys.maxsize - 1
65+
and distances[vertex_a] + weight < distances[vertex_b]
66+
):
6567
distances[vertex_b] = distances[vertex_a] + weight
6668

6769
return distances
@@ -83,18 +85,34 @@ def johnson_algo(self) -> list[dict]:
8385

8486
for i in range(len(self.edges)):
8587
vertex_a, vertex_b, weight = self.edges[i]
88+
self.edges[i] = (
89+
vertex_a,
90+
vertex_b,
91+
weight + hash_path[vertex_a] - hash_path[vertex_b],
92+
)
8693
self.edges[i] = (vertex_a,
8794
vertex_b,
8895
weight + hash_path[vertex_a] - hash_path[vertex_b])
8996

9097
self.graph.pop("#")
98+
self.edges = [
99+
(vertex1, vertex2, node_weight)
100+
for vertex1, vertex2, node_weight in self.edges
101+
if vertex1 != "#"
102+
]
91103
filtered_edges = []
92104
for vertex1, vertex2, node_weight in self.edges:
93105
if vertex1 != "#":
94106
filtered_edges.append((vertex1, vertex2, node_weight))
95107
self.edges = filtered_edges
96108

97109
for vertex in self.graph:
110+
self.graph[vertex] = [
111+
(vertex2, node_weight)
112+
for vertex1, vertex2, node_weight in self.edges
113+
if vertex1 == vertex
114+
]
115+
98116
filtered_neighbors = []
99117
for vertex1, vertex2, node_weight in self.edges:
100118
if vertex1 == vertex:

0 commit comments

Comments
 (0)