コード例 #1
0
ファイル: UnionFind.cs プロジェクト: ocarizr/C-Sharp-studies
        private UFNode <T> GetGroupRoot(UFNode <T> node)
        {
            while (node.Root != null)
            {
                node = node.Root;
            }

            return(node);
        }
コード例 #2
0
ファイル: UnionFind.cs プロジェクト: ocarizr/C-Sharp-studies
 private void Union(UFNode <T> first, UFNode <T> second)
 {
     if (first.Root == null && second.Root == null)
     {
         second.Root = first;
     }
     else if (first.Root == null && second.Root != null)
     {
         first.Root = second.Root;
     }
     else if (first.Root != null && second.Root == null)
     {
         second.Root = first.Root;
     }
     else
     {
         Union(first.Root, second.Root);
     }
 }
コード例 #3
0
ファイル: UnionFind.cs プロジェクト: ocarizr/C-Sharp-studies
 public UFNode(T value)
 {
     Root  = null;
     Value = value;
 }