示例#1
0
    def test_empty(self):
        mh = MinHeap()
        self.assertTrue(mh.empty())

        mh.append(1)
        self.assertFalse(mh.empty())

        mh.pop()
        self.assertTrue(mh.empty())
示例#2
0
	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)