26
26
"""
27
27
from __future__ import annotations
28
28
29
+ from typing import Any
30
+
29
31
30
32
class Graph :
31
33
def __init__ (self , num_of_nodes : int ) -> None :
@@ -62,7 +64,7 @@ def set_component(self, u_node: int) -> None:
62
64
for k in self .m_component :
63
65
self .m_component [k ] = self .find_component (k )
64
66
65
- def union (self , component_size : list , u_node : int , v_node : int ) -> None :
67
+ def union (self , component_size : list [ int ] , u_node : int , v_node : int ) -> None :
66
68
"""Union finds the roots of components for two nodes, compares the components
67
69
in terms of size, and attaches the smaller one to the larger one to form
68
70
single component"""
@@ -84,7 +86,7 @@ def boruvka(self) -> None:
84
86
component_size = []
85
87
mst_weight = 0
86
88
87
- minimum_weight_edge : list [int ] = [- 1 ] * self .m_num_of_nodes
89
+ minimum_weight_edge : list [Any ] = [- 1 ] * self .m_num_of_nodes
88
90
89
91
# A list of components (initialized to all of the nodes)
90
92
for node in range (self .m_num_of_nodes ):
@@ -119,7 +121,7 @@ def boruvka(self) -> None:
119
121
minimum_weight_edge [component ] = [u , v , w ]
120
122
121
123
for edge in minimum_weight_edge :
122
- if edge != - 1 :
124
+ if isinstance ( edge , list ) :
123
125
u , v , w = edge
124
126
125
127
u_component = self .m_component [u ]
0 commit comments