HW5_박권수_2015104173.py 722 Bytes
import numpy

parent = dict()
rank = dict()

def make_singleton_set(v) :
    parent[v] = v
    rank[v] = v

def find(v) :
    if(parent[v] != v) :
        parent[v] = find(parent[v])
    return parent[v]

def union(r1, r2) :
    if(r1 != r2) :
        if(rank[r1] > rank[r2]) :
            parent[r2] = r1
            rank[r1] += rank[r2]
        else :
            parent[r1] = r2
            if(rank[r1] == rank[r2]) :
                rank[r2] += rank[r1]

def Kruskal(graph) :
    #n =  정점의 수 / m = 엣지의 수
    n = len(graph['vertices'])
    m = len(graph['edges'])

    #엣지를 전부 찾은 후 비내림차순으로 정렬한다.
    edge_list = list(graph['edges'])
    edge_list.sort()

    F = []