public static void Test() { UnionFind uf = new UnionFind(10); Console.WriteLine("uf.count() is 10: {0}", uf.Count()); uf.Union(0, 1); uf.Union(3, 2); Console.WriteLine("uf.count() is 8: {0}", uf.Count()); Console.WriteLine("uf.connected(0, 1) is true: {0}", uf.Connected(0, 1)); Console.WriteLine("uf.connected(1, 2) is false: {0}", uf.Connected(1, 2)); uf.Union(4, 0); Console.WriteLine("uf.count() is 7: {0}", uf.Count()); Console.WriteLine("uf.connected(4, 0) is true: {0}", uf.Connected(4, 0)); Console.WriteLine("uf.connected(4, 1) is true: {0}", uf.Connected(4, 1)); uf.Union(5, 6); uf.Union(7, 8); uf.Union(6, 7); uf.Union(2, 5); Console.WriteLine("uf.count() is 3: {0}", uf.Count()); Console.WriteLine("uf.connected(3, 8) is true: {0}", uf.Connected(3, 8)); Console.WriteLine("uf.connected(3, 0) is false: {0}", uf.Connected(3, 0)); uf.Union(0, 8); Console.WriteLine("uf.count() is 2: {0}", uf.Count()); Console.WriteLine("uf.connected(3, 0) is true: {0}", uf.Connected(3, 0)); Console.WriteLine("uf.connected(0, 9) is false: {0}", uf.Connected(0, 9)); Console.WriteLine("uf.find(0) is 8: {0}", uf.Find(0)); Console.WriteLine("uf.find(1) is 8: {0}", uf.Find(1)); Console.WriteLine("uf.find(2) is 8: {0}", uf.Find(2)); Console.WriteLine("uf.find(3) is 8: {0}", uf.Find(3)); Console.WriteLine("uf.find(9) is 9: {0}", uf.Find(9)); }
static void Main(string[] args) { UnionFind.test(); }