disjoint_set.go
func FindSet(forests *Forests, name string) *DisjointSet {
	forests.mu.Lock()
	defer forests.mu.Unlock()
	for data := range forests.data {
		if data.represent == name {
			return data
		}
		for k := range data.members {
			if k == name {
				return data
			}
		}
	}
	return nil
}
func FindSet(forests *Forests, name string) *DisjointSet {
	forests.mu.Lock()
	defer forests.mu.Unlock()
	for data := range forests.data {
		if data.represent == name {
			return data
		}
		for k := range data.members {
			if k == name {
				return data
			}
		}
	}
	return nil
}
func FindSet ( forests * Forests , name string ) * DisjointSet { forests . mu . Lock ( ) defer forests . mu . Unlock ( ) for data := range forests . data { if data . represent == name { return data } for k := range data . members { if k == name { return data } } } return nil }
// FindSet returns the DisjointSet with the represent name.
FindSet returns the DisjointSet with the represent name .