python UnionFind - Python3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python UnionFind - Python3相关的知识,希望对你有一定的参考价值。

class UnionFind:
    def __init__(self, n):
        self.table = [-1] * n
 
    def _root(self, x):
        if self.table[x] < 0:
            return x
        else:
            self.table[x] = self._root(self.table[x])
            return self.table[x]
 
    def find(self, x, y):
        return self._root(x) == self._root(y)
 
    def union(self, x, y):
        r1 = self._root(x)
        r2 = self._root(y)
        if r1 == r2:
            return
        d1 = self.table[r1]
        d2 = self.table[r2]
        if d1 <= d2:
            self.table[r2] = r1
            if d1 == d2:
                self.table[r1] -= 1
        else:
            self.table[r1] = r2

以上是关于python UnionFind - Python3的主要内容,如果未能解决你的问题,请参考以下文章

并查集(UnionFind)

并查集(UnionFind)

java——并查集 UnionFind

并查集(UnionFind)

数据结构 ---[实现并查集(UnionFind)]

python3.3不自带的模块或工具包 下载以后要怎么处理才能在开发环境中调用 (比如放到pyth