Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import graphviz
- def drawUF(a):
- dot = graphviz.Digraph(comment='Nada')
- n = len(a)
- for i in range(n):
- dot.node(str(i), str(i))
- for i in range(n):
- if i != a[i]:
- dot.edge(str(i), str(a[i]))
- dot.graph_attr['rankdir'] = 'BT'
- return dot
- dot = drawUF([0, 0, 9, 9, 9, 6, 6, 7, 8, 9])
- #print(dot)
- graphviz.Source(dot)
- def quickfind(s, a):
- return s[a]
- def qfunion(s, a, b):
- pa = quickfind(s, a)
- pb = quickfind(s, b)
- for i in range(len(s)):
- if s[i] == pa:
- s[i] = pb
- s = [i for i in range(10)]
- dot = drawUF(s)
- graphviz.Source(dot)
- qfunion(s, 3, 4)
- dot = drawUF(s)
- graphviz.Source(dot)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement