예제 #1
0
        public void A_big_test()
        {
            var uf = new QuickUnionUF(10);

            uf.Union(4, 3);
            uf.Union(3, 8);
            uf.Union(6, 5);
            uf.Union(9, 4);
            uf.Union(2, 1);
            Assert.True(uf.IsConnected(8, 9));
            Assert.False(uf.IsConnected(5, 4));
            uf.Union(5, 0);
            uf.Union(7, 2);
            uf.Union(6, 1);
            uf.Union(7, 3);

            Assert.Equal(1, uf.Nodes[0]);
            Assert.Equal(8, uf.Nodes[1]);
            Assert.Equal(1, uf.Nodes[2]);
            Assert.Equal(8, uf.Nodes[3]);
            Assert.Equal(3, uf.Nodes[4]);
            Assert.Equal(0, uf.Nodes[5]);
            Assert.Equal(5, uf.Nodes[6]);
            Assert.Equal(1, uf.Nodes[7]);
            Assert.Equal(8, uf.Nodes[8]);
            Assert.Equal(8, uf.Nodes[9]);
        }