コード例 #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 extract_min_test_2():
    heap = MinHeap([90, 90, 90], already_heap=True)
    print(f"Original: {heap}")
    for i in range(3):
        print(heap.extract_min(), heap)
def extract_min_test_3():
    heap = MinHeap([], already_heap=True)
    for i in range(3):
        print(heap.extract_min(), heap)
def extract_min_test_1():
    heap = MinHeap([10, 20, 25, 22, 30, 25, 28], already_heap=True)
    print(f"Original: {heap}")
    for i in range(1, 8):
        print(heap.extract_min(), heap)