コード例 #1
0
 def mst_prim(self):
     root.key = self.nodes[0]
     Q = MinHeap(self.nodes)
     while not Q.is_empty():
         u = Q.extract_min()
         for v in self.adj_list[u]:
             if v in Q and self.weight[(u, v)] < v.key:
                 v.parent = u
                 Q.decrease_key(v.key, self.weight[(u, v)])
def decrease_key_test_2():
    heap = MinHeap([10, 20, 25, 22, 30, 25, 28], already_heap=True)
    heap.decrease_key(6, 0)
    print(heap)
def decrease_key_test_3():
    heap = MinHeap([10, 20, 25, 22, 30, 25, 28], already_heap=True)
    heap.decrease_key(0, 11)  # Supposed to throw an error
    print(heap)
def decrease_key_test_1():
    heap = MinHeap([10, 20, 25, 22, 30, 25, 28], already_heap=True)
    for i in range(7):
        heap.decrease_key(i, heap.arr[i] - 1)
    print(heap)