def test_empty(self): mh = MinHeap() self.assertTrue(mh.empty()) mh.append(1) self.assertFalse(mh.empty()) mh.pop() self.assertTrue(mh.empty())
def algorithm(self, graph): edges = sorted(graph.E, key=self.edge_wt_sort) hp = MinHeap() hp.insert(edges[0]) while(not hp.empty()): edge = hp.pop() graph.remove_edge(edge) if(edge.v1 in self.tree.V() \ and edge.v2 in self.tree.V()): continue self.tree.add_edge(edge) self.min_weight += edge.wt neighborhood = graph.edges(edge.v1) + graph.edges(edge.v2) hp.insert_all(neighborhood)