示例#1
0
 DisjointSetNode <T> GetParent(DisjointSetNode <T> item)
 {
     if (item.Parent != item)
     {
         var par = GetParent(item.Parent);
         item.Parent = par;
         return(par);
     }
     return(item);
 }
示例#2
0
        public void MakeSet(T input)
        {
            DisjointSetNode node = new DisjointSetNode(input)
            {
                Parent = Tree.Count
            };

            Tree.Add(node);
            return;
        }
示例#3
0
 public DisjointSetNode(TValue value, DisjointSetNode <TValue>?parent = null)
 {
     Value  = value;
     Parent = parent ?? this;
     Rank   = 0;
 }