박권수

init Kruskal

1 +import numpy
2 +
3 +parent = dict()
4 +rank = dict()
5 +
6 +def make_singleton_set(v) :
7 + parent[v] = v
8 + rank[v] = v
9 +
10 +def find(v) :
11 + if(parent[v] != v) :
12 + parent[v] = find(parent[v])
13 + return parent[v]
14 +
15 +def union(r1, r2) :
16 + if(r1 != r2) :
17 + if(rank[r1] > rank[r2]) :
18 + parent[r2] = r1
19 + rank[r1] += rank[r2]
20 + else :
21 + parent[r1] = r2
22 + if(rank[r1] == rank[r2]) :
23 + rank[r2] += rank[r1]
24 +
25 +def Kruskal(graph) :
26 + #n = 정점의 수 / m = 엣지의 수
27 + n = len(graph['vertices'])
28 + m = len(graph['edges'])
29 +
30 + #엣지를 전부 찾은 후 비내림차순으로 정렬한다.
31 + edge_list = list(graph['edges'])
32 + edge_list.sort()
33 +
34 + F = []
...\ No newline at end of file ...\ No newline at end of file
......