Ejemplo n.º 1
0
        public void WeightedQuickUnionTest()
        {
            //Arrange
            var weightedQuickUnion = new WeightedQuickUnion(10);

            //7-9 6-9 2-0 5-8 7-4 6-1 0-5 4-3 2-4

            //Act
            weightedQuickUnion.Union(7, 9);
            weightedQuickUnion.Union(6, 9);
            weightedQuickUnion.Union(2, 0);
            weightedQuickUnion.Union(5, 8);
            weightedQuickUnion.Union(7, 4);
            weightedQuickUnion.Union(6, 1);
            weightedQuickUnion.Union(0, 5);
            weightedQuickUnion.Union(4, 3);
            weightedQuickUnion.Union(2, 4);
            //Assert
            Assert.IsTrue(weightedQuickUnion.IsConnected(7, 9));
            Assert.IsTrue(weightedQuickUnion.IsConnected(6, 9));
            Assert.IsTrue(weightedQuickUnion.IsConnected(2, 0));
            Assert.IsTrue(weightedQuickUnion.IsConnected(5, 8));
            Assert.IsTrue(weightedQuickUnion.IsConnected(7, 4));
            Assert.IsTrue(weightedQuickUnion.IsConnected(6, 1));
            Assert.IsTrue(weightedQuickUnion.IsConnected(0, 5));
            Assert.IsTrue(weightedQuickUnion.IsConnected(4, 3));
            Assert.IsTrue(weightedQuickUnion.IsConnected(2, 4));

            foreach (var component in weightedQuickUnion.Components)
            {
                Trace.WriteLine(component);
            }
        }
Ejemplo n.º 2
0
        public void UnionTests()
        {
            var union = new WeightedQuickUnion(10);

            union.Union(5, 8);

            Assert.IsTrue(union.Connected(5, 8));
            Assert.IsFalse(union.Connected(5, 9));
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            int n = 10;
            WeightedQuickUnion weighted = new WeightedQuickUnion(n);

            weighted.Union(0, 1);
            weighted.Union(2, 3);
            weighted.Union(4, 5);
            weighted.Union(5, 0);
            weighted.Union(6, 7);
            weighted.Union(8, 9);
            weighted.Union(0, 8);

            bool found = weighted.Connected(9, 0);
        }
Ejemplo n.º 4
0
        // create N-by-N grid, with all sites blocked
        public Percolation(int N)
        {
            gridDimension   = N;
            percolationGrid = new bool[gridDimension, gridDimension];
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    percolationGrid[i, j] = false;
                }
            }

            virtualBottom               = gridDimension * gridDimension;
            virtualTop                  = virtualBottom + 1;
            weightedQuickUnionUF        = new WeightedQuickUnion(gridDimension * gridDimension + 2);
            weightedQuickUnionUFForFull = new WeightedQuickUnion(gridDimension * gridDimension + 2);
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            WeightedQuickUnion qu = new WeightedQuickUnion(10);

            qu.union(4, 3);
            qu.union(3, 8);
            qu.union(6, 5);
            qu.union(9, 4);
            qu.union(2, 1);
            qu.union(5, 0);
            qu.union(7, 2);
            qu.union(6, 1);
            qu.union(7, 3);



            qu.Print();
        }
Ejemplo n.º 6
0
 static void Main(string[] args)
 {
     WeightedQuickUnion weightedQuickUnion = new WeightedQuickUnion(10);
 }